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

凉白开 Nginx595,12318字数 701阅读2分20秒阅读模式

公司使用nginx作为负载均衡,有时候需要自定义header头发送给后端的真实服务器. 想过去应该是非常的简单的事情.

例子如下:文章源自运维生存时间-https://www.ttlsa.com/nginx/nginx-proxy_set_header/

设置代理服务器ip头文章源自运维生存时间-https://www.ttlsa.com/nginx/nginx-proxy_set_header/

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

然后自己在自定义个header,remote_header_test,如下:文章源自运维生存时间-https://www.ttlsa.com/nginx/nginx-proxy_set_header/

proxy_set_header remote_header_test "123123123";

接着后端真实服务器打开www.ttlsa.com/nginx_header.php文章源自运维生存时间-https://www.ttlsa.com/nginx/nginx-proxy_set_header/

源代码是简单的phpinfo文章源自运维生存时间-https://www.ttlsa.com/nginx/nginx-proxy_set_header/

<?php

phpinfo();

?>

在phpinfo结果页面中搜索刚才设置的头部,发现没有找到,网上查找资料,才发现原来nginx会忽略掉下划线的头部变量.于是改成如下:文章源自运维生存时间-https://www.ttlsa.com/nginx/nginx-proxy_set_header/

proxy_set_header remoteheadertest "123123123";

再次打开www.ttlsa.com/nginx_header.php,搜索remoteheadertest,有内容. 看来果真不能用下划线. 然后改成'-',如下:文章源自运维生存时间-https://www.ttlsa.com/nginx/nginx-proxy_set_header/

proxy_set_header remote-header-test "123123123";

打开页面,搜索到的头部是remote_header_test. 自动转换成下划线了.文章源自运维生存时间-https://www.ttlsa.com/nginx/nginx-proxy_set_header/

如果想要支持下划线的话,需要增加如下配置:文章源自运维生存时间-https://www.ttlsa.com/nginx/nginx-proxy_set_header/

underscores_in_headers on;

可以加到http或者server中文章源自运维生存时间-https://www.ttlsa.com/nginx/nginx-proxy_set_header/

语法:underscores_in_headers on|off
默认值:off
使用字段:http, server
是否允许在header的字段中带下划线文章源自运维生存时间-https://www.ttlsa.com/nginx/nginx-proxy_set_header/

文章源自运维生存时间-https://www.ttlsa.com/nginx/nginx-proxy_set_header/文章源自运维生存时间-https://www.ttlsa.com/nginx/nginx-proxy_set_header/
weinxin
我的微信
微信公众号
扫一扫关注运维生存时间公众号,获取最新技术文章~
凉白开
  • 本文由 发表于 08/08/2013 18:09:03
  • 转载请务必保留本文链接:https://www.ttlsa.com/nginx/nginx-proxy_set_header/
评论  5  访客  2
    • […] 01. memc_nginx+srcache_nginx+memcached遇到的问题 02. nginx purge更新缓存404错误 03. nginx反向代理proxy_set_header自定义header头无效 […]

      • cc
        cc 9

        专业!

      评论已关闭!