参考资料

  1. Nginx集群负载(基于LVS和Keepalived)搭建详细说明以及案例
  2. Nginx 基于SSL的TCP代理服务器详细说明以及案例
  3. Nginx基本介绍
  4. Nginx负载均衡策略详解
  5. Nginx的负载均衡能力
  6. LVS(Linux Virtual Server)负载均衡详细说明以及案例
  7. 如何设置nginx监控与响应?
  8. Nginx作为Web服务器的优势

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 # 重载配置