Nginx 反向代理配置
时间:2026-10-8 07:10 作者:emer 分类: 无
Nginx 反向代理配置
反向代理是 Nginx 最常用的功能,前端请求 Nginx,Nginx 再转发给后端服务。
1. 什么是反向代理
- 正向代理: 代理客户端,比如翻墙
- 反向代理: 代理服务器,客户端不知道真正的后端
2. 基础配置
server {
listen 80;
server_name www.example.com;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
意思是:访问 80 端口的请求,转发到 8080 端口的服务。
3. 常用配置说明
location / {
# 转发地址
proxy_pass http://127.0.0.1:8080;
# 传递真实IP
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 超时设置
proxy_connect_timeout 5s;
proxy_read_timeout 60s;
proxy_send_timeout 60s;
}
4. 按路径转发不同服务
# 访问 /api/ 转发到后端API服务
location /api/ {
proxy_pass http://127.0.0.1:8080;
}
# 访问 /admin/ 转发到后台管理服务
location /admin/ {
proxy_pass http://127.0.0.1:8081;
}
# 其他访问静态文件
location / {
root /www/wwwroot/html;
}
5. 常见应用场景
1)前后端分离:
- 前端静态文件 Nginx 直接处理
- API 请求转发到后端服务
2)Node.js/Python 后端:
- Nginx 处理 80/443 端口
- 转发到 Node.js 的 3000 端口
3)负载均衡:
- 配合 upstream 转发到多台服务器
6. 常见问题
1)后端获取不到真实 IP:
- 要配置 X-Real-IP 和 X-Forwarded-For
- 后端从请求头里取
2)WebSocket 不支持:
- 需要加特殊头
proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade";
3)上传文件大小限制:
client_max_body_size 100m;
总结
Nginx 反向代理核心:
- proxy_pass 转发地址
- proxy_set_header 传递真实信息
- 按 location 转发不同服务
- 注意超时和文件大小限制
做 Web 开发,Nginx 反向代理一定要会配置。