问题描述
我们在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。