博客
关于我
nginx详细使用教程
阅读量:425 次
发布时间:2019-03-06

本文共 2682 字,大约阅读时间需要 8 分钟。

Nginx 高级配置指南

1. 简介

Nginx 是一款高性能、稳定且功能强大的 HTTP 和反向代理服务器,也是一款 IMAP/POP3 代理服务器。它广泛应用于负载均衡、静态资源服务器、反向代理以及高并发场景下的内容缓存等场景。以下将从安装、配置到反向代理及负载均衡等方面详细阐述 Nginx 的使用方法。

2. 安装

2.1 源码安装

Nginx 可以通过源码安装,推荐使用以下步骤:

  • 下载源码:访问 Nginx 官方下载页面,选择合适版本(如 1.18.0),下载对应的压缩包(如 nginx-1.18.0.tar.gz)。
  • 解压安装包:tar -zxvf nginx-1.18.0.tar.gz
  • 安装所需的第三方库:
  • 配置安装:
    • 在 Nginx 根目录下执行:
      ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_flv_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre=../pcre-8.44 --with-zlib=../zlib-1.2.11 --with-openssl=../openssl-1.1.1i
  • 编译并安装:
    • make
    • sudo make install
  • 2.2 建立软链接

    为了方便操作,可在 /usr/bin/ 目录中创建 Nginx 的启动软链接:

    ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx

    启动服务器可用 sudo nginx 命令。

    3. 配置

    Nginx 配置文件通常位于 /usr/local/nginx/conf/nginx.conf,主要包含以下模块:

    3.1 main 模块

    • user:指定 Worker 进程的用户组,默认为 nobody
    • worker_processes:设置 Worker 进程的数量,根据 CPU 核心数设置 2-4。
    • error_log:指定日志文件,支持多种 loglevel 级别。
    • worker_rlimit_nofile:限制单个进程能打开的文件描述符数目。

    3.2 events 模块

    • 默认使用 epoll 工作模式,支持 Linux 平台。
    • worker_connections:设置单个 Worker 进程的最大连接数,建议设置为 1024 或更高。

    3.3 http 模块

    • 包含常用设置,如 sendfiletcp_nopushtcp_nodelay 等。
    • keepalive_timeout:设置客户端连接超时时间。

    3.4 server 模块

    • 定义虚拟主机,设置监听端口、域名、根目录等。
    • 示例:
      server {    listen       80;    server_name  localhost 192.168.12.10 www.eliwang.top;    root /usr/local/nginx/html;    index index.html index.htm;    charset utf-8;}

    3.5 location 模块

    • 定义 URL 匹配规则,支持正则表达式。
    • 示例:
      location / {    root /usr/local/nginx/html;    index index.html index.php;}location /static/ {    alias /var/static/;}

    3.6 upstream 模块

    • 负载均衡设置,支持多种调度算法(如 ip_hashweight)。
    • 示例:
      upstream myproject {    ip_hash;    server 192.168.123.1:80;    server 192.168.123.2:80 down;    server 192.168.123.3:8080 max_fails=3 fail_timeout=20s;    server 192.168.123.4:8080;}

    4. 反向代理

    4.1 proxy_pass

    • 将请求转发到指定服务器:
      proxy_pass http://127.0.0.1:8000;
    • 可结合负载均衡使用:
      proxy_pass http://myproject;

    4.2 proxy_redirect

    • 重定向处理,避免客户端出现循环请求。
    • 示例:
      proxy_redirect / /newlocation;

    4.3 其他反向代理选项

    • proxy_method:改变请求方法(如 GET 转为 POST)。
    • proxy_hide_header:隐藏特定 HTTP 头。
    • proxy_pass_header:允许转发特定 HTTP 头。
    • proxy_pass_request_body:控制请求体转发。

    5. 负载均衡

    5.1 upstream 块

    • 定义上游服务器集合:
      upstream my.net {    server 192.168.1.100:80 max_fails=1 fail_timeout=300s;    server 192.168.1.101:80 max_fails=1 fail_timeout=300s;}
    • 使用 ip_hash 算法:
      upstream my.net {    ip_hash;    server 192.168.1.100:80;    server 192.168.1.101:80 down;}

    5.2 负载均衡策略

    • weight:轮询权重分配。
    • max_fails:设置失败次数阈值。
    • fail_timeout:失败后等待时间。

    6. 高级应用

    • 缓存: 使用 proxy_cache 模块。
    • 压缩: 配置 gzip 模块。
    • SSL: 配置 SSL 模块,支持 HTTPS。
    • 访问控制: 使用 limit_req_zone 控制访问频率。

    通过以上配置,Nginx 能够成为高效的反向代理、负载均衡服务器,适用于多种场景,包括 Web 服务、视频流媒体、静态资源托管等。

    转载地址:http://sjduz.baihongyu.com/

    你可能感兴趣的文章
    PHP 中 this,self,parent 的区别、用法
    查看>>
    PHP 中如何高效地处理大规模数据的排序?
    查看>>
    PHP 使用 $_SERVER['PHP_SELF'] 获取当前页面地址及其安全性问题
    查看>>
    PHP 函数名前面加&
    查看>>
    php 反射
    查看>>
    php 处理 大并发
    查看>>
    php 大文件上传
    查看>>
    PHP 学习笔记 (四)
    查看>>
    php 实现Iterator 接口
    查看>>
    PHP 实现N阶矩阵相乘
    查看>>
    php 延迟静态绑定static关键字
    查看>>
    php 引用 -
    查看>>
    Redis入门
    查看>>
    PHP 截取字符串乱码的解决方案
    查看>>
    php 接口类与抽象类的实际作用
    查看>>
    PHP 插入排序 -- 折半查找
    查看>>
    PHP 支持8种基本的数据类型
    查看>>
    php 放大镜,放大镜放大图片效果
    查看>>
    php 数据库 表格数据,php数据库到excel表格-php怎么把数据库数据放到表格里
    查看>>
    PHP 数据库连接池实现
    查看>>