70.7.1 自定义Tomcat代理配置

如果使用的是Tomcat,你可以配置用于传输”forwarded”信息的headers名:

  1. server.tomcat.remote-ip-header=x-your-remote-ip-header
  2. server.tomcat.protocol-header=x-your-protocol-header

你也可以为Tomcat配置一个默认的正则表达式,用来匹配内部信任的代理。默认情况下,IP地址10/8192.168/16169.254/16127/8是被信任的。通过设置server.tomcat.internal-proxies属性可以自定义,比如:

  1. server.tomcat.internal-proxies=192\\.168\\.\\d{1,3}\\.\\d{1,3}

只有在使用配置文件时才需要双反斜线,如果使用YAML,只需要单个反斜线,比如192\.168\.\d{1,3}\.\d{1,3}

internal-proxies设置为空表示信任所有代理,不要在生产环境使用。

你可以完全控制Tomcat的RemoteIpValve配置,只要关掉自动配置(比如设置server.use-forward-headers=false)并在TomcatEmbeddedServletContainerFactory bean添加一个新value实例。