NGINX配置 —— location 与 proxy_pass的url后 加与不加 / 的区别

请求网站为:192.168.1.123:80/static/a.html
conf 配置文件

server{
port  80,
server name  192.168.1.123

location /static{
proxy_pass  192.168.2.321:81
}

location /static{
proxy_pass  192.168.2.321:81/
}

location /static/{
proxy_pass  192.168.2.321:81
}

location /static/{
proxy_pass  192.168.2.321:81/
}

第一种 location后无 / proxy_pass后无 /

#192.168.1.123->server name
# :80 ---------> port
#/statc ------->location
#/a.html ------>proxy_pass 

location /static{
proxy_pass  192.168.2.321:81
}

最后网址经过nginx转向到的网址是 192.168.2.321:81/static/a.html

第二种 location后无 / proxy_pass后有 /

#192.168.1.123---->server name
# :80 ------------> port
#/statc ---------->location
#/a.html --------->proxy_pass 

location /static{
proxy_pass  192.168.2.321:81/
}

最后网址经过nginx转向到的网址是 192.168.2.321:81/a.html

第三种 location后有 / proxy_pass后无 /

#192.168.1.123-->server name
# :80 ------------> port
#/statc/ ---------->location
#a.html --------->proxy_pass 

location /static/{
proxy_pass  192.168.2.321:81
}

最后网址经过nginx转向到的网址是 192.168.2.321:81/static/a.html

第四种 location后有 / proxy_pass后有 /

#192.168.1.123-->server name
# :80 ------------> port
#/statc/ ---------->location(path1)
#a.html --------->proxy_pass (path2)

location /static/{
proxy_pass  192.168.2.321:81/
}
最后网址经过nginx转向到的网址是 192.168.2.321:81/a.html

总结:
当proxy_pass内容是 ip:port/ 时nginx最后代理到的网址是 proxy_pass(内容)
当proxy_pass内容是 ip:port  时nginx最后代理到的网址是 location(内容) + proxy_pass(内容)

location内容是什么不太影响结果
posted @ 2022-01-26 18:27  Linux_小白  阅读(631)  评论(0编辑  收藏  举报