nginx通过自定义header属性来转发不同的服务

背景:

因为后台代码变动较大,代码上线后不能支持原有的ios APP软件。然而App Store审核的时间又较长,等新代码上线后,App Store不能下载最新的ios包,导致客户不能正常访问(原有的ios包又不能继续支持)。

解决办法:

ios开发人员自定义请求头(这里自定义为newapp)
在这里插入图片描述

通过配置nginx 匹配请求头newapp 来转发到预发布环境(预发布为最新代码),审核通过后将nginx配置去掉即可。
核心:客户端自定义的http header,在nginx的配置文件里能直接读取到。
条件:header必须用减号“-”分隔单词,nginx里面会转换为对应的下划线“_”连接的小写单词。

修改nginx配置:
server {  
        listen 8008;  
        charset utf-8;  
        underscores_in_headers on;  
		location / {  
			alias d:/httpdemo/;  
			index index.html;  
			 #测试header转发  
			if ($http_newapp = "130****8074") {  
				proxy_pass http://yfb_xx; 
			}  
    	}  
    } 
参数配置说明:
  • underscores_in_headers on:nginx是支持读取非nginx标准的用户自定义header的,但是需要在http或者server下开启header的下划线支持:
  • 比如我们自定义header为newapp,获取该header时需要这样:$http_newapp(一律采用小写,而且前面多了个http_)
  • 如果需要把自定义header传递到下一个nginx:
    1.如果是在nginx中自定义采用proxy_set_header X_CUSTOM_HEADER $http_host;
    2.如果是在用户请求时自定义的header,例如curl –head -H “X_CUSTOM_HEADER: foo” http://domain.com/api/test,则需要通过proxy_pass_header X_CUSTOM_HEADER来传递
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值