nginx作反向代理时,须要把请求头信息一块儿发送给tomcat,否则tomcat中的域名绑定就没法发挥做用了。html
今天又遇到https请求被拦截器重定向到登录页竟然变成http的问题,致使小程序没法访问(汗。。。)nginx
以前讲过nginx作反向代理时要把请求头一块儿发给tomcat(http://www.javashuo.com/article/p-tvotyyvp-eq.html)apache
#nginx的反向代理配置
location / {
proxy_pass http://192.168.0.3:8080;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
因此nginx已经把请求头发送给tomcat了,问题应该是在tomcat身上,百度后:小程序
#在server.xml的Host节点下增长 <Valve className="org.apache.catalina.valves.RemoteIpValve" remoteIpHeader="X-Forwarded-For" protocolHeader="X-Forwarded-Proto" protocolHeaderHttpsValue="https"/>
这个配置里面,重点是protocolHeader字段,意思就是说,当protocolHeader字段的值为protocolHeaderHttpsValue的https的时候,认为是安全链接,不然就是http的非安全链接。tomcat
参考原文:安全