例如,配置文件server.xml中的这一行
< Connector port =“8345”protocol =“AJP / 1.3”redirectPort =“9875”/>
在这里你可以找到另一个重定向端口:
<Connector executor="tomcatThreadPool" port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
我理解连接器端口的作用.在第一种情况下,您使用它在apache中创建一个worker并将其发送到那里,在第二种情况下,您打开一个端口直接访问tomcat.然而,当涉及到重定向端口时,事情变得模糊.
以下是acat端口的tomcat文档给出的解释:
If this Connector is supporting non-SSL requests,and a request is
received for which a matching requires SSL
transport,Catalina will automatically redirect the request to the
port number specified here.
但什么时候会实现呢?如何知道请求何时需要SSL传输?
我有一个运行tomcat模块的卫星服务器.该模块通过从主服务器使用apache将流量重定向到ajp连接器而生效,反之亦然.
在主服务器中,https在apache中强制执行.这是否意味着所有请求都以加密或纯文本形式发送到卫星服务器?我知道如果我通过端口8080访问卫星服务器它没有加密,但我想知道这是否适用于重定向到主服务器的流量以及这个重定向端口在哪里生效.
解决方法
<Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="443" /> <Connector port="443" protocol="org.apache.coyote.http11.Http11Protocol" SSLEnabled="true" scheme="https" secure="true" sslProtocol="TLS" keystoreFile="/path/to/kestorefile" keystorePass="my_keystore_password"/>
Keystorefile是您网站的ssl证书.
如果您没有将具有重定向端口的其他部分配置为连接器端口,则您的请求将不会重定向到该端口.例如,如果网站不支持ssl请求,并且您尝试向该网站发送https请求,则会在浏览器上显示安全连接失败等错误.