Nginx代理proxy pass配置去除前缀的实现
发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,目录一个种方案是proxy_pass后面加根路径/.另一种方案是使用rewrite使用Nginx做代理的时候,可以简单的直接把请求原封不动的转发给下一个服务。比如,访问abc.com/appv2/a/
千家信息网最后更新 2025年12月01日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安全错误
数据库的锁怎样保障安全
宝山区通用软件开发试验设备
向日葵服务器在哪里买
网站实时采集数据库
奉贤区网络营销软件开发问答知识
数据库技术与应用课本
易宝科技互联网
access是正规数据库吗
租网站服务器价格
第五届世界互联网大会黑科技
评估软件开发成本怎么算
网络安全信息加密
网络安全可靠 资质
常用的关系数据库系统特点
清除数据库的步骤
ssh保存数据库变问好号
逻辑推理软件开发者杀死玩家
宝山区正规软件开发销售方法
网络安全应急处置功能需求
台州银行软件开发招聘
潼关网络安全宣传活动
声光电法制宣教中心软件开发
广东生鲜类的软件开发
电脑服务器自检进不了系统
易宝科技互联网
软件开发陈敬柱
宁波市蔚创互联网科技有限公司
厦门仟信德软件开发
网络安全 理清底数
dnf服务器在哪里
票房数据库最新