NGINX反向代理,header丢失的问题

1.问题:

请求的 header里传的值,直接通过IP访问可以获取到,通过域名(即NGINX)获取不到

        HttpServletRequest request = (HttpServletRequest)servletRequest;
        HttpServletResponse response = (HttpServletResponse)servletResponse;
        String loginToken = request.getHeader("AUTHORIZATION_TOKEN");
        logger.info("loginToken:" + loginToken);

2.原因:

默认情况下,并不是所有headersfields它都会转发,fields里带有下划线(_)的,Nginx视为不合法,自动抛弃不发了。例如:AUTHORIZATION_TOKEN

3.解决方法:

想要支持下划线(_)的headers fields,就需要将underscores_in_headers设置为on;默认是off

NGINX配置添加红框部分,并重启:

stay hungry stay foolish!
原文地址:https://www.cnblogs.com/shog808/p/14980330.html