在nginx中配置proxy_pass代理转发时,如果在proxy_pass后面的url加/,表示绝对根路径;如果没有/,表示相对路径,把匹配的路径部分也给代理走。具体实例如下
1.配置文件location带/且proxy_pass带/
server {
listen 80;
server_name test.htjs.net;
#通过访问service二级目录来访问后台
location /service/ {
# http://192.168.1.51:8080后面的斜杠是一个关键,没有斜杠的话就会传递service到后端节点
proxy_pass http://192.168.1.51:8080/;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
即如果访问test.htjs.net/service/xxx.html 实际访问的是后端服务http://192.168.1.51:8080/xxx.html
2.配置文件location带/且proxy_pass不带/
server {
listen 80;
server_name test.htjs.net;
#通过访问service二级目录来访问后台
location /service/ {
# http://192.168.1.51:8080后面的斜杠是一个关键,没有斜杠的话就会传递service到后端节点
proxy_pass http://192.168.1.51:8080;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
即访问http://test.htjs.net/service/xxx.html,实际访问的是后端服务 http://192.168.1.51:8080/service/xxx.html
3.配置文件location带/且proxy_pass带二级目录和/
server {
listen 80;
server_name test.htjs.net;
#通过访问service二级目录来访问后台
location /service/ {
# http://192.168.1.51:8080后面的斜杠是一个关键,没有斜杠的话就会传递service到后端节点
proxy_pass http://192.168.1.51:8080/api/;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
即访问访问http://test.htjs.net/service/xxx.html,实际访问的是后端服务 http://192.168.1.51:8080/api/xxx.html
4.配置文件location带/且proxy_pass带二级目录不带/
server {
listen 80;
server_name test.htjs.net;
#通过访问service二级目录来访问后台
location /service/ {
# http://192.168.1.51:8080后面的斜杠是一个关键,没有斜杠的话就会传递service到后端节点
proxy_pass http://192.168.1.51:8080/api;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
即访问访问http://test.htjs.net/service/xxx.html,实际访问的是后端服务 http://192.168.1.51:8080/apixxx.html
5.location不带/且proxy_pass带二级目录不带/
server {
listen 80;
server_name test.htjs.net;
#通过访问service二级目录来访问后台
location /service {
# http://192.168.1.51:8080后面的斜杠是一个关键,没有斜杠的话就会传递service到后端节点
proxy_pass http://192.168.1.51:8080/api;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
即访问访问http://test.htjs.net/service/xxx.html,实际访问的是后端服务 http://192.168.1.51:8080/api/xxx.html
6.location不带/且proxy_pass带/
server {
listen 80;
server_name test.htjs.net;
#通过访问service二级目录来访问后台
location /service {
# http://192.168.1.51:8080后面的斜杠是一个关键,没有斜杠的话就会传递service到后端节点
proxy_pass http://192.168.1.51:8080/;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
即访问访问http://test.htjs.net/service/xxx.html,实际访问的是后端服务 http://192.168.1.51:8080//xxx.html
7.location不带/且proxy_pass不带/
文章来源:https://www.toymoban.com/news/detail-854228.html
server {
listen 80;
server_name test.htjs.net;
#通过访问service二级目录来访问后台
location /service {
# http://192.168.1.51:8080后面的斜杠是一个关键,没有斜杠的话就会传递service到后端节点
proxy_pass http://192.168.1.51:8080;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
即访问访问http://test.htjs.net/service/xxx.html,实际访问的是后端服务 http://192.168.1.51:8080/service/xxx.html文章来源地址https://www.toymoban.com/news/detail-854228.html
到了这里,关于nginx根据二级目录转发服务以及带/和不带/的区别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!