nginx反向代理proxy_set_header自定义header头无效

本文探讨了在使用Nginx作为负载均衡器时,遇到自定义Header头带有下划线的问题及解决方案。详细介绍了如何通过修改配置使Nginx支持带有下划线的Header,并验证了其有效性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

公司使用nginx作为负载均衡,有时候需要自定义header头发送给后端的真实服务器. 想过去应该是非常的简单的事情. 例子如下: 设置代理服务器ip头
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
然后自己在自定义个header,remote_header_test,如下:
proxy_set_header remote_header_test "123123123";
接着后端真实服务器打开www.ttlsa.com/nginx_header.php 源代码是简单的phpinfo
<?php

phpinfo();

?>
在phpinfo结果页面中搜索刚才设置的头部,发现没有找到,网上查找资料,才发现原来nginx会忽略掉下划线的头部变量.于是改成如下:
proxy_set_header remoteheadertest "123123123";
再次打开www.ttlsa.com/nginx_header.php,搜索remoteheadertest,有内容. 看来果真不能用下划线. 然后改成'-',如下:
proxy_set_header remote-header-test "123123123";
打开页面,搜索到的头部是remote_header_test. 自动转换成下划线了. 如果想要支持下划线的话,需要增加如下配置:
underscores_in_headers on;
可以加到http或者server中 语法:underscores_in_headers on|off 默认值:off 使用字段:http, server 是否允许在header的字段中带下划线

转载于:https://my.oschina.net/766/blog/211209

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值