解决反向代理转发的请求重定向失败的问题
解决思路:
- 依赖反向代理添加的
X-Forwarded-Proto
字段 - 配置
org.apache.catalina.valves.RemoteIpValve
的protocolHeader
和protocolHeaderHttpsValue
- 在spring boot中的配置方法为:设置
server.tomcat.protocol-header=X-Forwarded-Proto
、设置server.tomcat.protocol-header-https-value=https
参考资料:
- tomcat配置类说明:https://tomcat.apache.org/tomcat-9.0-doc/api/index.html?org/apache/catalina/valves/RemoteIpValve.html
开启Tomcat的访问日志
Tomcat日志文件说明:
- catalina.日期.log:记录Tomcat的启动信息,包含 JVM参数 以及操作系统等日志信息
- commons-daemon.日期.log:以Windows服务的方式启动Tomcat时,输出服务启动信息的日志文件
- host-manager.日期.log:Tomcat自带的Manager组件所输出的日志
- localhost.日期.log:类似于Catalina的日志,输出一些系统信息
- localhost_access_log.日期.txt:Tomcat的访问日志
- manager.日志.log:仍然是manager模块的日志
- tomcat8-stderr.日期.log:标准错误流会输出到这里
- tomcat8-stdout.日期.log:标准输出流会输出到这里
配置 application.yml
开启访问日志(配置完成后,在进程工作目录下会多出一个tomcat目录,logs里面就有访问日志):
server:
tomcat:
# 设置tomcat的工作目录,设置tomcat日志的时候
# 设置tomcat日志的时候,如果指定相对路径,是从该路径开始,而不是jar包的工作目录
basedir:
tomcat
accesslog:
enabled: true
encoding: UTF-8
# 使用反向代理并且想在日志中输出用户真实公网ip的话,
# 请设置反向代理的X-Real-IP,并开启下面的配置。
# (对于一些负载均衡云服务是不用主动配置X-Real-IP)
# pattern: '%{X-Real-IP}i %l %u %t "%r" %s %b'