Nginx代理proxy pass配置去除前缀的实现
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,目录一个种方案是proxy_pass后面加根路径/.另一种方案是使用rewrite使用Nginx做代理的时候,可以简单的直接把请求原封不动的转发给下一个服务。比如,访问abc.com/appv2/a/
千家信息网最后更新 2026年10月31日Nginx代理proxy pass配置去除前缀的实现
目录
- 一个种方案是proxy_pass后面加根路径/.
- 另一种方案是使用rewrite
使用Nginx做代理的时候,可以简单的直接把请求原封不动的转发给下一个服务。
比如,访问abc.com/appv2/a/b.html, 要求转发到localhost:8088/appv2/a/b.html
简单配置如下:
upstream one { server localhost:8088 weight=5;}server { listen 80; server_name abc.com; access_log "pipe:rollback /data/log/nginx/access.log interval=1d baknum=7 maxsize=1G" main; 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_set_header X-NginX-Proxy true; proxy_pass http://one; }}即,设置proxy_pass即可。请求只会替换域名。
但很多时候,我们需要根据url的前缀转发到不同的服务。
比如
abc.com/user/profile.html转发到 用户服务localhost:8089/profile.html
abc.com/order/details.html转发到 订单服务 localhost:8090/details.html
即,url的前缀对下游的服务是不需要的,除非下游服务添加context-path, 但很多时候我们并不喜欢加这个。如果Nginx转发的时候,把这个前缀去掉就好了。
一个种方案是proxy_pass后面加根路径/.
server { listen 80; server_name abc.com; access_log "pipe:rollback /data/log/nginx/access.log interval=1d baknum=7 maxsize=1G" main; location ^~/user/ { 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_set_header X-NginX-Proxy true; proxy_pass http://user/; } location ^~/order/ { 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_set_header X-NginX-Proxy true; proxy_pass http://order/; }}^~/user/表示匹配前缀是user的请求,proxy_pass的结尾有/, 则会把/user/*后面的路径直接拼接到后面,即移除user.
另一种方案是使用rewrite
upstream user { server localhost:8089 weight=5;}upstream order { server localhost:8090 weight=5;}server { listen 80; server_name abc.com; access_log "pipe:rollback /data/log/nginx/access.log interval=1d baknum=7 maxsize=1G" main; location ^~/user/ { 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_set_header X-NginX-Proxy true; rewrite ^/user/(.*)$ /$1 break; proxy_pass http://user; } location ^~/order/ { 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_set_header X-NginX-Proxy true; rewrite ^/order/(.*)$ /$1 break; proxy_pass http://order; }}注意到proxy_pass结尾没有/, rewrite重写了url。
关于rewrite
syntax: rewrite regex replacement [flag]Default: -Context: server, location, if
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
服务
前缀
方案
时候
路径
代理
配置
不同
原封不动
内容
域名
就是
用户
用户服务
目录
订单
学习
帮助
支持
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技园
互联网佳科技有限公司
互联网科技开发公司
北京互联网科技公司
期待互联网科技
互联网科技作文
亿策互联网科技
华中科技大学互联网
互联网高科技企业
互联网科技素材视频竖屏
互联网科技股午盘股票涨跌
现代科技和互联网有关系吗
央行互联网金融科技公司
坤平互联网科技
允成互联网科技有限公司融资
玉溪新华互联网科技好不好
保险科技服务互联网营销体系
互联网科技包装股份有限公司上市
万物互联网智能科技
科技互联网公司两年变化
互联网科技公司华为
互联网科技深圳
金融科技创新监管互联网金融
蓝色互联网科技
深圳前海聚择互联网科技有限公司
厦门千工互联网科技有限公司
辽宁互联网新科技
科技类公司包括互联网吗
无锡工业互联网科技有限公司
黑云互联网科技有限公司