一、配置https
1、编译是需要加上ssl模块
2、开启https,并配置证书
ssl_certificate certs/xbell/fullchain.pem;
ssl_certificate_key certs/xbell/privkey.pem;
listen 443 ssl;
二、针对request.getScheme()
若Java中使用 request.getScheme(),导致无法进行https->http转化,现需要对nginx和tomcat进行配置
1、nginx
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
最后一行为设置https访问
2、tomcat 修改配置
在 Engine
模块增加如下节点:
<Valve className="org.apache.catalina.valves.RemoteIpValve"
internalProxies="192.168.1.XXX"
remoteIpHeader="x-forwarded-for"
remoteIpProxiesHeader="x-forwarded-by"
protocolHeader="x-forwarded-proto"
/>
其中需要将代理服务器的Ip加入到internalProxies
中,否则会失败
三、注意点
1、nginx 请选用最新版本
2、nginx 编译时请带上ssl
3、https必须占用443端口
四、参考文档
http://blog.inford.net/doc/171
https://blog.csdn.net/radic_feng/article/details/6720059
网友评论