Nginx 反向代理实战:从入门到高可用配置

作为站长,Nginx 反向代理是必会技能之一。不管你是跑多个网站、做负载均衡,还是保护后端服务,Nginx 都是性价比最高的选择。今天这篇不写基础安装,直接上干货——生产环境常用的反向代理配置技巧。

为什么你需要反向代理

说个真实场景:你有三台服务器,分别跑着不同的应用——Next.js 前端在 3000 端口,Python API 在 5000 端口,还有一个 WordPress 博客。直接暴露这些端口太危险了。用 Nginx 做反向代理,对外只开放 80 和 443,内部转发到各个应用,安全又优雅。

基础配置模板

server {
listen 80;
server_name api.example.com;
location / {
proxy_pass http://127.0.0.1:5000;
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_set_header X-Forwarded-Proto $scheme;
}
}

X-Real-IP 告诉后端真实的客户端 IP,X-Forwarded-Proto 让后端知道你用的是 HTTPS。

负载均衡

upstream backend {
least_conn;
server 192.168.1.10:5000 weight=3;
server 192.168.1.11:5000 weight=2;
server 192.168.1.12:5000 backup;
}

缓存加速

proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=1g;
server {
location /api/ {
proxy_cache my_cache;
proxy_cache_valid 200 10m;
add_header X-Cache-Status $upstream_cache_status;
proxy_pass http://backend;
}
}

常见坑

上传文件失败:加 client_max_body_size 100m;
502 Bad Gateway:调大 proxy_connect/read/send_timeout
HTTPS 证书:certbot --nginx -d api.example.com 自动续期

总结

Nginx 反向代理是站长工具箱里最趁手的家伙。基础几行配置就能解决多服务暴露问题,进阶的负载均衡和缓存更是规模化不可或缺的技能。

Last modification:July 10th, 2026 at 11:08 am

Leave a Comment