当前位置: 代码网 > it编程>数据库>Mysql > nginx根据二级目录转发服务以及带/和不带/的区别说明

nginx根据二级目录转发服务以及带/和不带/的区别说明

2024年12月18日 Mysql 我要评论
nginx根据二级目录转发服务及带/和不带/区别在nginx中配置proxy_pass代理转发时,如果在proxy_pass后面的url加/,表示绝对根路径;如果没有/,表示相对路径,把匹配的路径部分

nginx根据二级目录转发服务及带/和不带/区别

在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不带/

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

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com