Tomcat 请求 URL

Tomcat request URL

我们在 tomcat 服务器上托管的 java Web 应用程序存在问题。

tomcat 实例使用以下设置运行:

<Connector port="8090" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" />

在应用中,links使用getContextPath方法,其中returns links如: http://localhost:8090/webapp

但是,当被外部访问(Netscaler 重定向到服务器和端口 8090)时,应用程序在使用 URL(例如 https://public.domain.com/webapp)的 HTTPS 端口上查询时,将 return以下 link 秒: http://public.domain.com:80/webapp/...

link是使用StrutsLinkTool setAction()方法生成的 https://velocity.apache.org/tools/1.2/struts/StrutsLinkTool.html

它导致我们的表单被某些浏览器视为不安全的问题。 我想弄清楚如何让 tomcat 到 return 公共 https 域作为基础 URL。我试图在 tomcat 文档中找出基本请求 URL 是如何配置的以及它是否可以自定义?

我想正确的解决方案是在 tomcat 前面使用 apache 服务器,但我想知道是否有更简单的方法来管理但修改 tomcat 的 server.xml 文件

secure="true" 添加到 Connector。正如 documentation 所说:

Set this attribute to true if you wish to have calls to request.isSecure() to return true for requests received by this Connector. You would want this on an SSL Connector or a non SSL connector that is receiving data from a SSL accelerator, like a crypto card, an SSL appliance or even a webserver. The default value is false.

由于您的 Netscaler 正在处理 SSL 加密并将请求 un-encrypted 转发到 Tomcat,因此它充当“SSL 加速器”。

结果将是使用 https:.

生成的 URL