我在 Tomcat/Apache (CentOS) 上部署了 Groovy on Grails 应用程序。目前,它可以通过以下 URL 访问http://www.domain.com:8080/应用程序名称。我希望通过http://www.domain.com。
我该怎么办?
答案1
我认为你正试图http://www.domain.com:8080/AppName
在http://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。
答案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 上是否已有站点,如果有,您的选择就会受到限制。