当前位置: 代码网 > 服务器>服务器>Nginx > nginx去掉前端配置的路径前缀两种情况

nginx去掉前端配置的路径前缀两种情况

2024年05月26日 Nginx 我要评论
背景在前端项目部署到nginx的时候,前端访问后端的路径加了一个全局前缀,一般来说这是前后端商量好的,但是呢也会有不一般的情况,后端在遇到这种情况的时候有两种选择第一种是给项目里也加上同样的前缀第二种

背景

在前端项目部署到nginx的时候,前端访问后端的路径加了一个全局前缀,一般来说这是前后端商量好的,但是呢也会有不一般的情况,后端在遇到这种情况的时候有两种选择

  • 第一种是给项目里也加上同样的前缀
  • 第二种就是nginx配置文件做出修改
    这里我选择了后者

第一种方式,这样的结果是你后端项目同样需要加上prod-api

 location /prod-api{
        proxy_pass http://193.1.0.6:10004;
        proxy_set_header   x-forwarded-proto $scheme;
        proxy_set_header   host              $http_host;
        proxy_set_header   x-real-ip         $remote_addr;
    }

第二种方式,直接prod-api 后加个斜杠,同时在端口后面也加个斜杠,这样实际请求的路径就去掉了/prod-api
这样访问的/prod-api/test/1 实际就会变成 http://193.1.0.6:10004/test/1,就像是springmvc的静态资源映射一样的

 location /prod-api/{
        proxy_pass http://193.1.0.6:10004/;
        proxy_set_header   x-forwarded-proto $scheme;
        proxy_set_header   host              $http_host;
        proxy_set_header   x-real-ip         $remote_addr;
    }

比如:

       前端服务器url为:https://114.114.114.114:8002/myqz/menu/index.html

      后台服务器地址为:http://127.0.0.1:9008

第一种方式:

自动拼接前缀,前端服务器地址为:https://114.114.114.114:8002/menu/index.html       

location ~ \.do$ {
            proxy_set_header host      $host;
            proxy_set_header x-real-ip $remote_addr;
            proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;
            proxy_pass http://127.0.0.1:9008;
        }

        location ~ ^/(.*)$ {
            proxy_set_header host      $host;
            proxy_set_header x-real-ip $remote_addr;
            proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;
            proxy_pass https://114.114.114.114:8002/myqz/$1?$args;        }

第二种方式:

替换前缀 ,前端服务器地址为:https://114.114.114.114:8002/myqz/menu/index.html       

location / {
            proxy_set_header host      $host;
            proxy_set_header x-real-ip $remote_addr;
            proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;
            proxy_pass https://114.114.114.114:8002;
        }
        location ~ \.do$ {
            proxy_set_header host      $host;
            proxy_set_header x-real-ip $remote_addr;
            proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;
            rewrite ^/myqz/(.*)$ /$1 break;
            proxy_pass http://127.0.0.1:9008;        }

总结

到此这篇关于nginx去掉前端配置的路径前缀两种情况的文章就介绍到这了,更多相关nginx去掉前端路径前缀内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

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

发表评论

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