博客
关于我
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/

    你可能感兴趣的文章
    oracle dblink 创建使用 垮库转移数据
    查看>>
    oracle dblink结合同义词的用法 PLS-00352:无法访问另一数据库
    查看>>
    Oracle dbms_job.submit参数错误导致问题(ora-12011 无法执行1作业)
    查看>>
    oracle dg switchover,DG Switchover fails
    查看>>
    Oracle EBS OPM 发放生产批
    查看>>
    Oracle EBS-SQL (BOM-15):检查多层BOM(含common BOM).sql
    查看>>
    Oracle EBS环境下查找数据源(OAF篇)
    查看>>
    oracle Extract 函数
    查看>>
    Oracle GoldenGate Director安装和配置(无图)
    查看>>
    oracle instr函数详解
    查看>>
    oracle ogg 单实例双向复制搭建(oracle-oracle)--Oracle GoldenGate
    查看>>
    oracle rac集群的东西之QQ聊天
    查看>>
    oracle scott趣事
    查看>>
    oracle script
    查看>>
    Oracle select表要带双引号的原因
    查看>>
    Oracle SOA Suit Adapter
    查看>>
    Oracle Spatial GeoRaster 金字塔栅格存储
    查看>>
    Oracle Spatial空间数据库建立
    查看>>
    UML— 活动图
    查看>>
    oracle sqlplus已停止工作,安装完成客户端后sqlplus报“段错误”
    查看>>