Nginx反向代理完整配置指南(我用了5年的实战经验)
我用 Nginx 跑了 5 年网站,从个人博客到生产环境,踩过很多坑。这篇是我整理的最全的 Nginx 反向代理配置指南,新手也能学会。
一、Nginx 是什么?为什么要用反向代理?
Nginx 是什么?
Nginx 是一个 Web 服务器,也是反向代理服务器。
简单说,Nginx 就是网站的"前台",所有用户的请求都先到 Nginx,然后 Nginx 再把请求转发给后面的应用(比如 Node.js、Python、Java)。
为什么要用反向代理?
- 隐藏后端服务:用户不知道你后面跑的是什么应用,更安全
- 负载均衡:如果有多个后端服务,Nginx 可以把请求分发到不同的服务器
- SSL 终止:HTTPS 证书只需要在 Nginx 上配,后端不用管
- 缓存静态资源:Nginx 可以缓存静态文件,速度更快
- 统一入口:多个应用,用不同的路径,统一用 Nginx 暴露出去
二、安装 Nginx
Ubuntu/Debian
CentOS
三、基础反向代理配置
配置文件位置
- 主配置文件:
/etc/nginx/nginx.conf
- 站点配置:
/etc/nginx/conf.d/或者/etc/nginx/sites-available/
最简单的反向代理配置
参数解释:
listen 80:监听 80 端口(HTTP)
server_name example.com:你的域名
proxy_pass http://127.0.0.1:3000:把请求转发到后端的 3000 端口
proxy_set_header:传递一些头信息,让后端知道真实的用户 IP
四、配置 HTTPS(一定要做!)
现在所有网站都要用 HTTPS,不然浏览器会提示"不安全"。
第一步:申请 SSL 证书(免费)
用 Let's Encrypt 申请免费证书:
certbot 会自动帮你配置 Nginx 的 HTTPS,不用手动改。
第二步:自动续期
Let's Encrypt 的证书 90 天到期,certbot 会自动帮你续期,不用管。
五、常用进阶配置
1. 多个应用,用不同的路径
比如你有两个应用:
- 博客:跑在 3000 端口
- API:跑在 8000 端口
配置:
2. 开启 gzip 压缩
压缩网站内容,速度更快:
3. 缓存静态资源
缓存图片、CSS、JS,速度更快:
4. 限制请求数(防攻击)
防止别人刷你的网站:
六、常用命令
七、踩坑提醒
- 改完配置一定要 nginx -t:不然配置错了,Nginx 启动不了
- 注意端口冲突:不要跟其他应用用同一个端口
- 注意防火墙:一定要开放 80 和 443 端口
- 注意文件权限:Nginx 要能读到网站的文件,不然会 403
- 日志很重要:出问题了,看日志:
/var/log/nginx/error.log
八、我的常用配置
我自己的 Nginx 配置大概是这样的:
你有没有在用 Nginx?有没有什么常用的配置?欢迎在评论区分享~
- 作者:墨殇个人博客
- 链接:https://moshang.eu.org/article/3fcdeb47-39da-81f6-ac6a-fc531f32f201
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。



