nginx去掉前端配置的路径前缀两种情况
作者:你是理想
今天接到一个配置nginx的需求是,需要访问某个域名时,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去掉前端路径前缀内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!