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

    你可能感兴趣的文章
    poj 2545 Hamming Problem
    查看>>
    poj 2723
    查看>>
    poj 2763 Housewife Wind
    查看>>
    Qt笔记——模型/视图MVD 文件目录浏览器软件
    查看>>
    POJ 2892 Tunnel Warfare(树状数组+二分)
    查看>>
    poj 2965 The Pilots Brothers' refrigerator-1
    查看>>
    poj 3026( Borg Maze BFS + Prim)
    查看>>
    POJ 3041 - 最大二分匹配
    查看>>
    POJ 3041 Asteroids(二分匹配模板题)
    查看>>
    Qt笔记——标准文件对话框QFileDialog
    查看>>
    poj 3083 Children of the Candy Corn
    查看>>
    POJ 3083 Children of the Candy Corn 解题报告
    查看>>
    POJ 3253 Fence Repair C++ STL multiset 可解 (同51nod 1117 聪明的木匠)
    查看>>
    Qt笔记——控件总结
    查看>>
    poj 3262 Protecting the Flowers 贪心
    查看>>
    poj 3264(简单线段树)
    查看>>
    Qt笔记——布局管理三件套分割窗口、停靠窗口和堆栈窗口
    查看>>
    poj 3277 线段树
    查看>>
    POJ 3349 Snowflake Snow Snowflakes
    查看>>
    POJ 3411 DFS
    查看>>