文章目录
⚠️ 注意:这是踩坑记录不是教程!
一、反向代理
需要注意 proxy_pass 后跟的服务器 URL 是否以 / 结尾。
举例:Nginx 收到 URL 请求 https://nginx_server_name/hello/world,设置的代理路径为 /hello/(即在 location /hello/ 内设置代理)
- 不以
/结尾的被代理服务器收到的请求路径是/hello/world - 以
/结尾的被代理服务器收到的请求路径是/world
如果是为了在同一个域名下以不同路径分配不同的 APP 应选择后者以 / 结尾
Nginx 的代理 HTTP 版本默认为 1.0,若要设置为 1.1 则需添加下述配置:
proxy_http_version 1.1;
proxy_set_header Connection "";
二、URL 路径匹配
这里没怎么踩坑,因为 Nginx 默认如果是普通路径匹配(无正则)优先匹配路径长的,并且不会继续往下匹配(当然可以手动设置设置往下匹配)。
- 若同时设置了
/app/hello和/app两个路径,当请求 URL 应匹配到/app时,会优先匹配更长的/app/hello并且不会继续往下匹配/app - 若路径以
/结尾则路径可被目标服务器继承,反之则不可

本文详细记录了在使用Nginx过程中遇到的反向代理、URL路径匹配及重写的问题。在反向代理中,重点讨论了代理路径是否以/结尾对服务器请求路径的影响,以及如何设置HTTP版本。在URL路径匹配上,介绍了Nginx的匹配策略。最后,文章讲解了URL重写用于域名重定向和强制HTTPS,并解析了重写规则中的路径处理细节。
最低0.47元/天 解锁文章
1562

被折叠的 条评论
为什么被折叠?



