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