Tomcat请求网址

问题描述

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

tomcat实例在以下设置下运行:

import pandas as pd

with gzip.open("example.bed.gz","r+") as fileopen:
    df = pd.read_csv(fileopen,delimiter="\t",header=1)

在应用程序中,链接使用getcontextpath方法,该方法返回诸如以下的链接: http:// localhost:8090 / webapp

但是,当由外部访问(netscaler重定向到服务器和端口8090)时,在带有URL(例如https://public.domain.com/webapp)的HTTPS端口上查询时,该应用程序将返回以下链接http://public.domain.com:80/webapp/..

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

在某些浏览器将我们的表单视为不安全的情况下,这已经造成了问题。 我试图弄清楚如何使tomcat返回公共https域作为基本URL。我试图在tomcat文档中查找如何配置基本请求URL,以及是否可以自定义它?

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

解决方法

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

如果您希望调用true来返回此连接器收到的请求request.isSecure(),请将该属性设置为true。您可能希望在SSL连接器或从SSL加速器接收数据的非SSL连接器上使用它,例如加密卡,SSL设备甚至是Web服务器。默认值为false

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

结果将是生成使用https:的URL。