整理几个改配置时踩过的坑,都是那种看文档觉得懂、实际用起来才发现的。
带不带斜杠,路径拼接行为完全不同:
proxy_pass http://backend; # 保留 uri proxy_pass http://backend/; # 截掉 location 前缀
很多 404 都是这里写错了。
try_files $uri $uri/ /index.html; 里 $uri/ 会触发目录索引,如果后面没有兜底,容易出现奇怪的重定向。
= 精确匹配最高,其次是 ^~ 前缀且不再检查正则,然后才是正则,最后是普通前缀。^~ 用对了能避免一堆正则冲突。
自定义 log_format 加上 $upstream_response_time 和 $request_time,排查慢请求时非常有用。