nginx Cheatsheet
Nginx 配置与命令速查表
Nginx 配置与命令一页速查:nginx -t/-s reload/-T 语法测试与重载、location 匹配优先级、proxy_pass 反向代理片段与超时上传限制、access/error 日志排查,改配置和查 502/413 时直接对照。
把 Nginx 最常用的命令、location 匹配规则、反向代理片段和日志排查整理成一页,改配置和查 502 时直接对照。
命令与测试
- 测试配置语法,改完必跑再重载
nginx -t - 平滑重载配置,不断连接
nginx -s reload - 打印完整生效配置,排查 include 冲突
nginx -T - 完整重启(会断连接),一般用 reload
systemctl restart nginx - 查看编译参数和已启用模块
nginx -V
location 匹配优先级
- 精确匹配,优先级最高
location = /path - 前缀匹配且命中后不再查正则
location ^~ /static/ - 区分大小写的正则匹配
location ~ \.php$ - 不区分大小写的正则匹配
location ~* \.(jpg|png)$ - 普通前缀匹配,优先级最低
location /path
反向代理片段
- 转发到后端,注意结尾斜杠影响路径
proxy_pass http://127.0.0.1:8080; - 透传原始 Host 头
proxy_set_header Host $host; - 透传真实客户端 IP
proxy_set_header X-Real-IP $remote_addr; - 后端响应超时,长请求 502 时调大
proxy_read_timeout 60s; - 允许的最大上传体积,413 报错时调大
client_max_body_size 50m;
日志与排查
- 跟踪错误日志,502/504 先看这里
tail -f /var/log/nginx/error.log - 跟踪访问日志
tail -f /var/log/nginx/access.log - 筛出 502 请求
grep " 502 " /var/log/nginx/access.log - 只看响应头,快速验证服务
curl -I http://localhost
容易踩的坑
- proxy_pass 结尾带不带斜杠语义完全不同:带 / 会替换 location 前缀,不带则原样拼接。
- 改完配置先 nginx -t 再 reload,语法错时 reload 不会生效但旧进程继续跑。
- 502 先看 error.log:connection refused 是后端没起,timeout 是后端太慢。