在两个不同的端口上运行 Tomcat 服务器

2022-08-31 22:28:27

我想部署一个tomcat服务器,以便它同时侦听两个端口(两者都用于http协议)。

只是为了确保您了解此要求,我们只有一个服务器实例,但希望在两个端口上侦听HTTP协议。例如,任何人都可以使用端口号 7080 和 8080 访问部署在我的服务器中的应用程序

有可能做到这一点吗?如果可能的话,我们怎么能做到这一点呢?


答案 1

这很简单。您只需查看配置文件即可为所需的端口添加新的连接器。例如,如果您有一个如下所示的连接器:conf/server.xml

<Connector port="8080" 
           protocol="HTTP/1.1" 
           connectionTimeout="20000" 
           redirectPort="8443" 
           URIEncoding="UTF-8" />

只需在配置文件中添加与上面相同的新连接器,但更改 port 参数即可。就这样。重新启动,您就完成了。


答案 2

是的,这是可能的。只需编辑服务器.xml(位于名为conf的文件夹中),如下所示:

<Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" />
<Connector port="8081" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8444" />

这将使 Tomcat 侦听端口 80808081

该文件指出

  • 港口:此连接器将在其上创建服务器套接字并等待传入连接的 TCP 端口号。您的操作系统将只允许一个服务器应用程序侦听特定 IP 地址上的特定端口号。如果使用特殊值 0(零),则 Tomcat 将随机选择一个空闲端口用于此连接器。这通常仅在嵌入式和测试应用程序中有用。

  • 重定向端口:如果此连接器支持非 SSL 请求,并且收到匹配需要 SSL 传输的请求,则 Catalina 会自动将请求重定向到此处指定的端口号。<security-constraint>

因此,更改 redirectPort 是可选的,具体取决于您希望此类重定向的工作方式。