前置说明,项目配置了个全局PATH,估计是为了方便复杂环境单容器多项目部署用的老项目配置方式
var PATH = [[${#httpServletRequest.getScheme() + "://" + #httpServletRequest.getServerName() + ":" + #httpServletRequest.getServerPort() + #httpServletRequest.getContextPath()}]];
导致普通的网上找的总是缺1或缺2的感觉,下面是整合好的一份配置说明
nginx 配置
server {
listen 8100 ssl;
server_name xxx.top;
#ssl on;
#从腾讯云获取到的第一个文件的全路径
ssl_certificate /opt/docker/acme.sh/out/issue/xxx.pem;
#从腾讯云获取到的第二个文件的全路径
ssl_certificate_key /opt/docker/acme.sh/out/issue/xx.key.pem;
location / {
#proxy_set_header Host $host;
#非标准端口下面这个配置很重要
proxy_set_header Host $host:$server_port;
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;
#非标准端口下面这个配置很重要
proxy_set_header X-Forwarded-Port $server_port;
proxy_pass http://192.168.0.151:8100;
}
}
spring boot 项目tomcat配置
server:
# 配置项目端口
port: 8000
tomcat:
remoteip:
protocol-header: X-Forwarded-Proto
remote-ip-header: X-Forwarded-For
protocol-header-https-value: https
主要的是remoteip 节点下面的这三个必须配置
如果tomcat是独立部署的,则修改tomcat的配置文件Engne以下片段
<Valve className="org.apache.catalina.valves.RemoteIpValve"
remoteIpHeader="x-forwarded-for"
remoteIpProxiesHeader="x-forwarded-by"
protocolHeader="x-forwarded-proto"
protocolHeaderHttpsValue="https"
httpsServerPort="8443"/>
https://www.leftso.com/article/1091.html