Nginx 综合指南 封面
知识库

Nginx 综合指南

Nginx 的配置看起来只是几段 server,但请求到底走正向代理、反向代理还是静态文件,取决于指令所在的层级。下面按请求路径、进程模型和常用配置逐段拆解。


原文链接:https://zhuanlan.zhihu.com/p/34943332

作者:张丰哲 - 简书


引言

Nginx Architecture

Nginx 是一款轻量级的 Web 服务器、反向代理服务器,由于它的内存占用少,启动极快,高并发能力强,被广泛应用于各大互联网公司。


一、反向代理服务器?

Proxy Comparison

1.1 正向代理

定义:代理客户端

特点:

示例:VPN 访问谷歌

1.2 反向代理

定义:代理服务器端

特点:

示例:外网访问百度时,Nginx 转发到内网服务器


二、Nginx 的 Master-Worker 模式

Master-Worker

2.1 Master 进程作用

2.2 Worker 进程作用


三、Nginx 如何做到热部署?

3.1 方案一

3.2 方案二(Nginx 采用的方式)

优势:保证服务不中断,平滑升级


四、Nginx 如何做到高并发下的高效处理?

4.1 关键技术

  1. Worker 进程个数与 CPU 绑定
  2. Worker 进程内部包含一个线程高效回环处理请求
  3. 采用 Linux 的 epoll 模型

4.2 epoll 模型特点

优势:相比传统的 select/poll 模型,性能大幅提升


五、Nginx 挂了怎么办?

High Availability

5.1 解决方案

Keepalived + Nginx 实现高可用

5.2 实现思路

  1. 请求通过 Keepalived(虚拟 IP,VIP)
  2. Keepalived 监控 Nginx 的生命状态
  3. 提供脚本定期检查 Nginx 进程状态
  4. 实现 Nginx 故障切换

优势:当主 Nginx 故障时,备份 Nginx 立即接管服务


六、主战场:nginx.conf

6.1 虚拟主机配置

作为 web server 处理静态资源:

配置示例:

server {
    listen 80;
    server_name example.com;

    location / {
        root /var/www/html;
        index index.html;
    }

    # 静态资源
    location ~* \.(jpg|jpeg|png|gif|css|js)$ {
        root /var/www/static;
    }
}

6.2 反向代理【proxy_pass】

特点:

配置示例:

server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://backend_server;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

6.3 负载均衡【upstream】

功能:

配置示例:

upstream backend {
    server 192.168.1.1:8080 weight=2;
    server 192.168.1.2:8080;
    server 192.168.1.3:8080 backup;
}

server {
    location / {
        proxy_pass http://backend;
    }
}

负载策略说明:

注意事项:

6.4 缓存

功能:

配置示例:

proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=1g;

server {
    location / {
        proxy_cache my_cache;
        proxy_cache_valid 200 60m;
        proxy_pass http://backend;
    }
}

七、总结

Nginx 的核心优势:

  1. 轻量级:内存占用少,启动极快
  2. 高并发:采用 epoll 模型,性能出色
  3. 热部署:不中断服务的情况下更新配置
  4. 高可用:配合 Keepalived 实现故障切换
  5. 功能丰富:虚拟主机、反向代理、负载均衡、缓存等

参考文章


文档生成时间:2026-02-27