我在 NGINX SSL 后面运行 Tomcat - 使用哪种设置?

我在 NGINX SSL 后面运行 Tomcat - 使用哪种设置?

我在 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]。

所以每个设置的目的都不同。

相关内容