如何从 Tomcat URL 中删除端口号?

如何从 Tomcat URL 中删除端口号?

我在 Tomcat/Apache (CentOS) 上部署了 Groovy on Grails 应用程序。目前,它可以通过以下 URL 访问http://www.domain.com:8080/应用程序名称。我希望通过http://www.domain.com

我该怎么办?

答案1

我认为你正试图http://www.domain.com:8080/AppNamehttp://www.domain.com/没有尾随 应用程序名称。在这种情况下,您可能需要考虑在 Tomcat 前面运行反向代理。仅将端口从端口 8080 切换到 80 仍然需要您通过 访问您的应用程序http://www.domain.com/AppName

Apache 可以配置为执行此操作。你只需要设置mod_proxy使用以下配置:

ProxyPass / http://localhost:8080/AppName/
ProxyPassReverse / http://localhost:8080/AppName/

你也可以使用其他 Web 服务器执行此操作,例如lighttpd或者nginx除此之外,基本上大多数反向代理都可以以某种形式做到这一点。

答案2

设置您的服务器以监听端口 80。

http://www.klawitter.de/tomcat80.html

答案3

规范是,如果 URI 上没有端口号,则默认为端口 80。

我有一个 Tomcat 应用程序在端口 80 上运行,我担心 Tomcat 会以 root 身份运行(由于端口 80)。此外,我无法真正确定该应用程序的安全性。因此,我决定进行必要的更改,以将其作为另一个非私有端口运行。我的问题和您的一样,是保持 URI 简单。我在网上找到了需要执行的几个步骤,并且我在 Linux 系统上。

首先,将端口 80 重定向到端口 8080(我指定的替代方案)。您可以通过激活 iptables 并使用以下简单指令轻松完成此操作:

iptables -t nat -A OUTPUT -d localhost -p tcp --dport 80 -j REDIRECT --to-ports 8080
iptables -t nat -A OUTPUT -d your_hostname -p tcp --dport 80 -j REDIRECT --to-ports 8080
iptables -t nat -A PREROUTING -d your_hostname -p tcp --dport 80 -j REDIRECT --to-ports 8080

我相信当我配置这个时,我用我的 IP 号码替换了 localhost 和 your_hostname。

然后,您需要在 Tomcat 配置文件中做一些更改:(1)将连接器端口更改为 8080(对于此示例),将代理端口更改为 80。然后,您可以以非 root 用户身份运行 tomcat,仍然拥有简单的 URI,每个人都会很高兴。抱歉,我记不起这里要更改的具体 XML 文件。

答案4

默认的 http 端口是 80,除非您在 URL 中指定 80 以外的端口,否则您的浏览器将尝试连接到端口 80。这只是 http 的工作方式。

解决方案是将您的 Web 服务器重新配置为在端口 80 而不是端口 8080 上运行。当然,您首先需要检查端口 80 上是否已有站点,如果有,您的选择就会受到限制。

相关内容