如何让 Tomcat 在 443 而不是其默认端口 8080 上运行? [关闭]

Posted

技术标签:

【中文标题】如何让 Tomcat 在 443 而不是其默认端口 8080 上运行? [关闭]【英文标题】:How to make Tomcat run on 443 instead of its default port 8080? [closed] 【发布时间】:2014-08-14 10:43:15 【问题描述】:

我们需要在端口 443 而不是端口 8080 上运行 Tomcat 及其所有应用程序。任何人都可以就如何实现这一点提供指导吗?过程、好处和影响。

【问题讨论】:

您可以更改server.xml 文件以更改默认端口。 这个问题与Java编程无关,你应该在服务器管理论坛上问它。顺便说一句,Tomcat 的人写了一些文档...... 【参考方案1】:
Tomcat_home/conf/server.xml

search for 
<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

change 8080 to 443

【讨论】:

443 是特权端口,所以他也必须以 root 身份运行 要求应用程序在端口 443 上运行表示需要使用 SSL,所以这可能无法解决提问者的问题(尽管这个答案在技术上是正确的......) @maress 这仅适用于类 unix 操作系统.. @ abhishek 我确实将其更改为端口 443 并重新启动服务器。然后尝试在浏览器中触发 localhost:443,但 Tomcat 主页没有显示,而是 URL 不断被重定向到 @987654322 @. 我不知道你为什么需要 443 作为 HTTP 端口,我的回答只是告诉你如何更改你的 tomcat 的 HTTP 端口,现在当出现 443 的问题时,你应该熟悉它,我不想输入太多所以只是参考下面的网址检查它blog.simple-help.com/2011/12/ports-vs-protocols-80-and-443如果有人有更有用的链接那么请在这里分享。【参考方案2】:

查看 conf/server.xml,会有一个 &lt;Connector&gt; 元素包含属性 port="8080" - 您可以将其更改为您想要的任何内容。

然而,如果有人要求在 443 上运行它,我猜他们真正想要的是 https?在这种情况下,请参阅http://tomcat.apache.org/tomcat-8.0-doc/ssl-howto.html 了解如何在 tomcat 上设置 ssl。

【讨论】:

【参考方案3】:

您可以在 server.xml 文件(位于 conf 目录中)中更改 Tomcat 的端口。要更改端口,您必须修改“连接器”元素的“端口”属性。

如果您想在 linux 上运行 Tomcat 服务器并且您不能以特权用户身份运行它,您可以使用 iptables 将端口 443 重定向到 8080:iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 8080

【讨论】:

Linux 解决方案并不理想,因为用户会在浏览器的地址字段中看到 8080 地址。我建议使用 Apache 的 AJP 连接器或 authbind。 这不是“linux”的问题,@alexk 根据我的经验并警告其他人:你必须小心这个预路由规则,因为你可能会遇到如下错误:error:1408F10B:SSLroutines:ssl3_get_record:wrong version number 因为 iptables 会在某个时候打破 SSL 握手(我在 tomcat 上遇到了这个问题,让我们在 EC2 服务器中加密)

以上是关于如何让 Tomcat 在 443 而不是其默认端口 8080 上运行? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

我配置好一个tomcat,ssl证书,如何给同一台机器上的其他tomcat配置证书,默认的80,443端口已经被占用。

在端口 443 而不是 80 上加载站点

Tomcat配置8080强制跳转https端口变成8443或者80跳转443

tomcat非root用户启动443或80端口

域名如何隐藏端口号

如何验证服务器是不是可以在端口 80 和 443 上发出出站请求?