Nginx 做反向代理是日常运维中最常用的功能,但配置起来有不少坑。把平时遇到最多的几个问题整理一下。

1. proxy_pass 末尾斜杠

带斜杠会把匹配路径替换掉,不带斜杠保留完整路径。很多 404 都是这个原因。

location /api/ {
proxy_pass https://www.lvpn.cc
}
# 请求 /api/user → https://www.lvpn.cc

location /api/ {
proxy_pass https://www.lvpn.cc
}
# 请求 /api/user → https://www.lvpn.cc

2. 504 超时

后端接口处理时间长时 Nginx 默认 60s 超时会返回 504:

proxy_connect_timeout 30s;
proxy_read_timeout 120s;
proxy_send_timeout 120s;

3. 前端路由刷新 404

前后端分离项目用 history 模式刷新页面会 404,加一行解决:

location / {
try_files $uri $uri/ /index.html;
}

这几个问题排查起来挺费时间,记下来以后遇到直接看就行。