Nginx导致请求头丢失

1.Nginx代理时加上请求头信息:

   location / 
	{
        proxy_next_upstream http_502 http_504 error timeout invalid_header;
        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_pass http://web1;
        }

发现没有解决,最后发现是Nginx对header有所限制,下划线(_)不支持。

方法一:不用下划线

把下划线_改成其他的,如sign_val改成sign-val

方法二:从根本解除Nginx的限制

Nginx默认request的header的那么中包含’_’时,会自动忽略掉。
解决方法是:在nginx里的nginx.conf配置文件中的http部分中添加如下配置:
underscores_in_headers on; (默认 underscores_in_headers 为off)
加上后完美解决。
我使用的是方法二,方法一没有试。

你可能感兴趣的:(linux)