针对访问后台人数过多,导致源站压力巨大的问题,研发自定义了一个header信息,用来设置缓存,并判断是否命中header。针对这个问题,在测试环境进行测试时,发现自定义的header信息被nginx过滤掉了,经过一方查询,发现需要在nginx的配置里增加一个配置项,用来支持下划线的header
nginx增加配置项
underscores_in_headers on;
#默认是关闭的
nginx是支持读取非nginx标准的用户自定义header的,但是需要在http或者server下开启header的下划线支持:
子配置文件参考
server
{
listen 80;
server_name alpha-dazzle.xxxxxxxxx.com;
underscores_in_headers on;
location /xyapi/
{
proxy_set_header dazzle-Redis-Cache $host; #设置自定义的header,并传递给下一个nginx
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr; #获取真实ip
#proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #获取代理者的真实ip
client_max_body_size 20480m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 128k;
proxy_buffers 2 256k;
proxy_busy_buffers_size 256k;
proxy_temp_file_write_size 256k;
proxy_pass http://xyapi/;
access_log /data/logs/nginx/xyapi-bigdata.log bigdata-json;
access_log /data/logs/nginx/xyapi-grafana.log grafana;
add_header Redis-Cache '11';
}
}
修改完重启nginx,测试即可,下面是我的测试结果