前端-nginx.conf文件中proxy_pass变量值的结尾有无斜杠的区别
2023-12-26 17:47:19
server {
listen 8080;
server_name localhost;
location ^~/mgrcontrol/{
proxy_pass '$MGR_SERVICE';
}
}
在Nginx配置文件中,proxy_pass
指令用于将请求代理到指定的后端服务。在配置中,proxy_pass
后面使用了变量 $MGR_SERVICE
,而这个变量的值是后端服务的地址。
影响的主要点是关于路径的处理。具体而言,是关于location
块中的路径和proxy_pass
中的路径的组合。
-
无斜杠结尾(例如
http://backend
):location ^~/mgrcontrol/
匹配的是以/mgrcontrol/
开头的请求。proxy_pass '$MGR_SERVICE';
中的$MGR_SERVICE
是一个不以斜杠结尾的URL,例如http://backend
。- 当请求为
/mgrcontrol/somepath
时,Nginx会将请求代理到$MGR_SERVICE
后面追加/mgrcontrol/somepath
,即最终请求的后端地址是http://backend/mgrcontrol/somepath
。
-
有斜杠结尾(例如
http://backend/
):location ^~/mgrcontrol/
依然匹配以/mgrcontrol/
开头的请求。proxy_pass '$MGR_SERVICE';
中的$MGR_SERVICE
是一个以斜杠结尾的URL,例如http://backend/
。- 当请求为
/mgrcontrol/somepath
时,Nginx会将请求代理到$MGR_SERVICE
后面追加somepath
,即最终请求的后端地址是http://backend/somepath
。
所以,主要取决于$MGR_SERVICE
的结尾是否有斜杠,以及location
块中的路径是否以斜杠结尾。
文章来源:https://blog.csdn.net/qq_42371932/article/details/135226662
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!