使用Nginx代理https到Tomcat,后端request.getRequestURL()获取不到https开头的链接

在网站改为https后,后台tomcat实际访问的地址为http,在某些场景下会有问题。

解决方法如下:

1、nginx的location块中增加配置

内容如下:

1
proxy_set_header X-Forwarded-Proto $scheme;

2、修改Tomcat server.xml配置

在Tomcat server.xml 的 Engine 模块下配置一个 Valve:

1
<Valve className="org.apache.catalina.valves.RemoteIpValve"  remoteIpHeader="X-Forwarded-For"  protocolHeader="X-Forwarded-Proto"  protocolHeaderHttpsValue="https"/>  

然后重启Tomcat即可。

或者将Connector改为如下(新增scheme=”https” proxyPort=”443”):

1
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" scheme="https" proxyPort="443"/>


使用Nginx代理https到Tomcat,后端request.getRequestURL()获取不到https开头的链接
https://river106.cn/posts/48929f3a.html
作者
river106
发布于
2021年5月28日
许可协议