Tomcat中的重定向端口是什么?


13

很难理解tomcat文档,而查看server.xml时,您会发现可能很难理解的端口色拉,因为在文档中并未对此进行适当或广泛的解释。

例如,配置文件中的这一行 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。但是,当涉及到重定向端口时,事情变得很模糊。

这是tomcat文档对ajp端口的说明:

如果此连接器支持非SSL请求,并且收到一个要求进行SSL传输匹配的请求,则Catalina将自动将请求重定向到此处指定的端口号。

我总是选择超过1024个随机重定向端口,并且可以正常工作,

但是什么时候可以付诸实践呢?如何知道请求何时需要SSL传输?

我有一个运行tomcat模块的卫星服务器。该模块通过使用主服务器上的apache将流量重定向到ajp连接器而生效,反之亦然。

在主服务器中,在Apache中强制执行https。这是否意味着所有请求都以加密或纯文本形式发送到卫星服务器?我知道,如果我通过端口8080访问卫星服务器,则不会进行加密,但是我想知道这是否也适用于重定向到主服务器的流量,并且此重定向端口在哪里生效。

Answers:


6

根据文档中的定义,当SSL请求到达服务器时,重定向端口就会出现,并且由于http连接器端口无法处理SSL请求,它将重定向到定义的端口。但是它们必须是server.xml文件中定义的另一部分,其中定义的重定向端口将用作处理SSL请求的连接器端口。例如,如果您希望http请求由端口80处理而https请求由端口443处理,则server.xml将如下所示:

<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请求,则会在浏览器上显示诸如“ 安全连接失败”之类的错误。


很公平。那么ajp而不是http的配置呢?像您提到的那样使用1024以下的端口也是一个好主意吗?这意味着要以root用户身份运行tomcat,这并不好。
Ulukai '16

1
我对ajp不太了解,但重定向必须与http相同。关于使用1024以下的端口,完全取决于您。80和443是https和https协议的默认端口,无需在url中明确提及它们。如果要使用非标准端口,则取决于您。同样以root身份运行tomcat,这取决于部署的应用程序。如果您不从安全角度信任您的应用程序,则不得使用root用户运行tomcat。其他方法是,您可以使用apache或nginx作为代理在端口80和443上运行,并将您的请求重定向到tomcat。
Gaurav Pundir '16

我会注意到iptables在其他方法中,该方法也可以很好地将流量重定向到Tomcat 。
SeldomNeedy

该解释不完整。如果要从非SSL重定向到SSL端口,则在server.xml中包含目标连接器是不够的。还需要在web.xml中配置<security-constraint>部分。参见stackoverflow.com/questions/9526425/…–
luiscolorado
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.