nginx proxy_pass的一些小结

个人学习笔记,谢绝转载!!!

原文:https://www.cnblogs.com/wshenjin/p/13641413.html


proxy_pass

proxy_pass不包含任何路径:

location /sdk/ {
         proxy_pass http://1.1.1.1:80;
}

这种情况,会把location匹配到的路径直接穿透转发:
http://127.0.0.1/sdk/aa/bb/cc/ --> http://1.1.1.1/sdk/aa/bb/cc/

proxy_pass包含路径,包含哪怕只有一个/:

location /sdk/ {
         proxy_pass http://1.1.1.1:80/login/;
}

这种情况,会去掉url里匹配location字符串(/sdk/),并拼接到proxy_pass指定的路径,再进行转发:
http://127.0.0.1/sdk/aa/bb/cc/ --> http://1.1.1.1/login/aa/bb/cc/

rewrite重写代理连接

使用rewrite,proxy_pass 所指定的路径将被忽略,如:

location /sdk/ {
         rewrite ^/sdk/(.*) /$1 break;
         proxy_pass http://1.1.1.1:80/login/;
}

这种情况,url不会拼接到proxy_pass指定的路径:
http://127.0.0.1/sdk/aa/bb/cc/ --> http://1.1.1.1/aa/bb/cc/

posted @ 2020-09-09 20:14  wshenJin  阅读(288)  评论(0编辑  收藏  举报