nginx配置之proxy_pass路径加斜杠/以及包含路径的区别
nginx配置看似简单,但一些细节配置经常被大家忽略。
在proxy_pass中
1.proxy_pass包含路径如 http://127.0.0.1:8080/abc 和http://127.0.0.1:8080规则都有区别。
2.proxy_pass结尾加斜杠/和不加斜杠的有区别
下面四种情况分别用http://192.168.10.1/proxy/test.html 进行访问。
第一种(末尾加斜杠,proxy_pass中不包含路径):
location /proxy/ {
proxy_pass http://127.0.0.1:81/;
}
结论:会被代理到http://127.0.0.1:81/test.html (proxy_pass+请求url匹配的location路径后的内容)
第二种(末尾不加斜杠,proxy_pass不包含路径)
location /proxy/ {
proxy_pass http://127.0.0.1:81;
}
结论:会被代理到http://127.0.0.1:81/proxy/test.html (proxy_pass替换请求url的ip和端口)
第三种(末尾加斜杠,proxy_pass包含路径):
location /proxy/ {
proxy_pass http://127.0.0.1:81/abc/;
}
结论:会被代理到http://127.0.0.1:81/abc/test.html (proxy_pass+请求url匹配的location路径后的内容)
第四种(末尾不加斜杠,url包含路径):
location /proxy/ {
proxy_pass http://127.0.0.1:81/abc;
}
结论:会被代理到http://127.0.0.1:81/abctest.html (proxy_pass+请求url匹配的location路径后的内容)
总结:
1.如果proxy_pass后面有斜杠。转发url为proxy_pass+原url匹配的location路径之后的内容。
例:原请求http://192.168.10.1/proxy/test.html, location 为/proxy/
proxy_pass为 http://127.0.0.1:81/abc/
转发路径:(proxy_pass)http://127.0.0.1:81/abc/加上原请求部分路径test.html,最终路径http://127.0.0.1:81/abc/test.html
2.proxy_pass后面没有斜杠,
a.只有当proxy_pass只有IP加端口,无路径时。匹配规则为proxy_pass替换原请求url的ip和端口,
同时保留了location路径。例子为上述的第二种情况。
b.当proxy_pass端口后包含路径时,匹配规则同1.
3.推荐:一般建议proxy_pass后面不包含路径
转自:https://blog.csdn.net/u010786902/article/details/91414747
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
2019-11-13 Centos 7 安装nvidia显卡驱动