1.问题:
请求的 header里传的值,直接通过IP访问可以获取到,通过域名(即NGINX)获取不到
HttpServletRequest request = (HttpServletRequest)servletRequest; HttpServletResponse response = (HttpServletResponse)servletResponse; String loginToken = request.getHeader("AUTHORIZATION_TOKEN"); logger.info("loginToken:" + loginToken);
2.原因:
默认情况下,并不是所有headers的fields它都会转发,fields里带有下划线(_)的,Nginx视为不合法,自动抛弃不发了。例如:AUTHORIZATION_TOKEN
3.解决方法:
想要支持下划线(_)的headers fields,就需要将underscores_in_headers设置为on;默认是off
NGINX配置添加红框部分,并重启:
