原文地址:http://blog.csdn.net/johnnycode/article/details/48262191
Nginx 反向代理 Tomcat 传递自定义 Head 信息遇到几个问题总结一下!
1. Nginx 若只配置 proxy_pass 则不会将原始请求 Head 向 Tomcat 转发,必须配置 proxy_set_header !
#移动端业务服务配置
server {
listen 80;
server_name mobile.abc.com;
access_log logs/access-mobile.log main;
error_log logs/error-mobile.log;
location / {
proxy_pass http://127.0.0.1:8060/mobile_service/;
proxy_set_header HOST $HOST;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Request-Url $request_uri;
}
}
2.若请求 Head 信息中存在自定义信息并且以 "_" 下划线间隔,则必须配置underscores_in_headers 否则 Head 无法向 Tomcat 转发!
http {
include mime.types;
default_type application/octet-stream;
underscores_in_headers on; #自定义 Head 必须定义
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
...此处省略...