我在 NGINX SSL 后面运行 Tomcat,有人能告诉我 tomcat server.xml 的最佳设置是什么吗?
我应该添加以下属性吗:
< secure="true"
proxyName="localhost"
proxyPort="443"
scheme="https" >
到 Tomcat 中的连接器,或者
<Valve className="org.apache.catalina.valves.RemoteIpValve"
internalProxies="127.0.[0-1].1"
remoteIpHeader="x-forwarded-for"
requestAttributesEnabled="true"
protocolHeader="x-forwarded-proto"
protocolHeaderHttpsValue="https" />
致我的<engine>
哪种设置更好?
答案1
如果只是告知 Tomcat 中的 web 应用程序,客户端无法通过代理服务器用来与 Tomcat 建立连接的值(例如 LOCALHOST:8080)来访问它,而是可以通过 HOSTNAME:443 来访问,那么第一个例子(使用正确的 SSL 主机名)就足够了 [1]。
在这种情况下,Tomcat 不知道哪个客户端实际上正在请求,访问日志将仅包含代理服务器的“客户端”IP。如果这不足以进行故障排除或使用 RemoteAddrValve [2] 进行授权,这也是使用第二种配置的原因。
请注意,标头也必须通过反向代理进行相应的转发[3]。
所以每个设置的目的都不同。