最近在配置nginx的时候,想到nginx中的location区段中路由匹配中的斜线,以及proxy_pass中后端地址中的斜线,添加或者不添加到底有什么影响,博客园找了一个博客,感觉挺靠谱的
nginx 服务器及端口 127.0.0.1:80
后端服务:127.0.0.1:8080
测试url:http://127.0.0.1:80/day06api/api/abc
A.配置
nginx配置如下:
1 | location /day06api/ { |
实际访问的端口服务:http://127.0.0.1:8080/api/abc
B.配置
1 | location /day06api { |
实际访问的端口服务:http://127.0.0.1:8080//api/abc
C.配置
1 | location /day06api/ { |
实际访问的端口服务:http://127.0.0.1:8080/day06api/api/abc
D.配置
1 | location /day06api { |
实际访问的端口服务:http://127.0.0.1:8080/day06api/api/abc
E.配置
1 | location /day06api/ { |
实际访问的端口服务:http://127.0.0.1:8080/server/api/abc
F.配置
1 | location /day06api { |
实际访问的端口服务:http://127.0.0.1:8080/server//api/abc
G.配置
1 | location /day06api/ { |
实际访问的端口服务:http://127.0.0.1:8080/serverapi/abc
H.配置
1 | location /day06api { |
实际访问的端口服务:http://127.0.0.1:8080/server/api/abc
大概的规律就是,location中的uri本身是起到匹配url的作用,本身也作为一个字符串(命名为location
)
proxy_pass中的转发地址
只有ip和端口,不带斜线
直接拼接location
以及它后面的地址
只有ip和端口,带斜线
拼接location
后面的地址(不包含location
)
ip和端口,带路径
不管路径后面带不带斜线,都是拼接location
后面的地址(不包含location
),区别是,拼接完的URL会不会多斜线或者少斜线要注意。