«

Nginx 反向代理配置

时间:2026-10-9 07:30     作者:emer     分类: 无


Nginx 反向代理配置

反向代理是 Nginx 最常用的功能之一,配置很简单。

1. 什么是反向代理

反向代理就是:用户访问 Nginx,Nginx 把请求转发给后端服务器,再把结果返回给用户。

作用:

2. 基本配置

server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

说明:

3. 常用请求头

location / {
    proxy_pass http://127.0.0.1:8080;

    # 传递域名
    proxy_set_header Host $host;

    # 传递真实IP
    proxy_set_header X-Real-IP $remote_addr;

    # 传递完整请求链
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    # 传递协议
    proxy_set_header X-Forwarded-Proto $scheme;
}

4. 超时配置

location / {
    proxy_pass http://127.0.0.1:8080;

    # 连接超时
    proxy_connect_timeout 60s;

    # 发送超时
    proxy_send_timeout 60s;

    # 读取超时
    proxy_read_timeout 60s;
}

5. WebSocket 代理

location /ws {
    proxy_pass http://127.0.0.1:8080;
    proxy_http_version 1.1;

    # WebSocket 升级
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
}

6. 负载均衡

# 定义后端服务器组
upstream backend {
    server 127.0.0.1:8080 weight=1;
    server 127.0.0.1:8081 weight=2;
    server 127.0.0.1:8082 max_fails=3 fail_timeout=30s;
}

server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://backend;
        proxy_set_header Host $host;
    }
}

7. 静态文件直接返回

server {
    listen 80;
    server_name example.com;

    # 静态文件直接处理
    location ~* \.(js|css|png|jpg|gif)$ {
        root /var/www/static;
        expires 30d;
    }

    # 其他请求转发后端
    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
    }
}

8. 配置生效

# 检查配置
nginx -t

# 重载配置
nginx -s reload

9. 常见问题

1)502 Bad Gateway

2)504 Gateway Timeout

3)获取不到真实IP

4)WebSocket 连不上

10. 生产建议

1)一定要传请求头

2)合理设置超时

3)静态文件 Nginx 直接处理

4)开启 gzip 压缩

gzip on;
gzip_types text/css application/javascript;

总结

Nginx 反向代理配置要点:

反向代理是 Nginx 基本功,一定要熟练掌握。

标签: Nginx 反向代理 运维 服务器 配置