Nginx 配置入门:反向代理、gzip 与常见坑,一篇讲清最常用的 80%
Nginx 是 most 开发者接触的第一台「服务器门面」,但很多人只会改端口就开始用,遇到反向代理 502、静态文件 403 就束手无策。这篇整理最常用的配置块与排查思路。
基础结构:Nginx 配置由 http 块下的多个 server 块组成,每个 server 监听一个端口/域名,server 内的 location 按前缀或正则匹配路径。改完配置必须 nginx -t 语法检查、nginx -s reload 平滑重载,直接 kill 进程会造成瞬断。
反向代理是最高频场景:location /api/ { proxy_pass http://127.0.0.1:3000; } 把 /api/ 前缀的请求转发给后端 Node 服务。两个常见坑:一是 proxy_pass 末尾带不带斜杠行为完全不同(带斜杠会去掉 location 前缀);二是忘记设置 proxy_set_header Host 和 X-Real-IP,导致后端拿到的都是 127.0.0.1。
gzip 压缩对前端资源收益巨大:gzip on; gzip_types text/css application/javascript application/json; gzip_min_length 1k; 三行就能把 JS/CSS 体积压到原来的三分之一。注意图片类已压缩格式不要重复压缩。
静态资源 403 排查三步:看文件权限(nginx worker 进程用户是否有读权限)、看 SELinux(CentOS 上常见拦截,audit2allow 分析)、看 location root 路径是否正确(root 是拼接完整路径,alias 是替换前缀,混用是重灾区)。
502/504 排查:502 说明后端进程挂了或端口不对,直接 curl 127.0.0.1:3000 验证后端是否存活;504 多是后端处理超时,调大 proxy_read_timeout。日志是好朋友:access_log 和 error_log 配合 tail -f 能定位 90% 的问题。
最后建议把常用配置块沉淀成 include 片段(如 gzip.conf、proxy.conf),server 块里 include 进来,配置既整洁又好维护。配合 nginx -t 的习惯,Nginx 就从黑盒变成顺手工具。
- 点赞
- 收藏
- 关注作者
评论(0)