nginx接收的host值会影响alias的规则匹配

本文探讨了Nginx在处理内网HTTP请求时遇到的问题,即alias匹配使用网关传递的host值而非URL解析的host值,这可能导致容器中alias相关Server_name规则失效。文章提出了解决方案,建议网关传递的HOST与URL中原host保持一致,并指出upstream定义为相关域名的重要性。

一般内网接收的HTTP请求都是内网唯一的网关传过来的,nginx的alias匹配会直接使用网关穿过的host值,而不是从URL解析出来的,从而导致的问题是,容器的alias相关Server_name规则会失效,因为根据网关传过来的自定制host可能在nginx配置里面找不到匹配的server_name,然后最后的结果就是Nginx配置里面第一个server_name配置接收这个请求。

所以要求网关传过来的HOST必须与URL里面的原host一致。

解决办法:网关在定义upstream值是,最好就定义成相关的域名,因为这个upstream值会作为host传给二级nginx服务器。

再多说一句:alias项的配置,url和文件目录的最后是否有斜杠,必须一致。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值