参考资料

  1. Nginxreferer:请求头控制模块详细说明以及案例
  2. Nginx的负载均衡能力
  3. Nginx处理HTTP请求详细说明以及案例
  4. nginx 配置反向代理
  5. Nginx伪动态SSI服务器详细说明以及案例
  6. 如何调整client_header_timeout
  7. 如何启用Nginx上游连接复用?
  8. Nginx expires、etag、if_modified_since:客户端缓存控制详细说明以及案例

nginx反向代理配置详解

nginx反向代理配置详解

  1. 基础配置

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;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}
  • listen: 监听端口

  • server_name: 域名或IP

  • location: 匹配请求路径

  • proxy_pass: 指定后端服务地址

  • proxy_set_header: 设置请求头传递信息

  1. 常用参数

  • proxy_connect_timeout: 后端连接超时时间(默认60s)

  • proxy_read_timeout: 读取后端响应超时时间(默认60s)

  • proxy_send_timeout: 发送请求到后端的超时时间(默认60s)

  • proxy_buffering off: 关闭响应缓冲(适用于实时流)

  1. SSL配置

server {
    listen 443 ssl;
    server_name example.com;

    ssl_certificate /path/to/cert.pem;
    ssl_certificate_key /path/to/key.pem;

    location / {
        proxy_pass http://backend_server;
        # 保持基础配置中的header设置
    }
}
  1. WebSocket支持

location /ws/ {
    proxy_pass http://websocket_server;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
}
  1. 负载均衡

upstream backend {
    server 192.168.1.10:8080;
    server 192.168.1.11:8080;
    server 192.168.1.12:8080;
}

server {
    location / {
        proxy_pass http://backend;
    }
}
  1. 缓存控制

proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=my_cache:10m;

location / {
    proxy_cache my_cache;
    proxy_cache_valid 200 302 10m;
    proxy_cache_valid 404      1m;
}

检查配置并重载

nginx -t        # 验证配置
nginx -s reload # 重载配置