【问题标题】:how to redirect apache port 80 to jetty port 8080?如何将 apache 端口 80 重定向到码头端口 8080?
【发布时间】:2014-12-11 12:57:58
【问题描述】:

我有一个域为 example.com 的 VPS 服务器,apache2 监听端口为 80

然后,我在码头服务器中有一个网络应用程序(使用 mvn jetty:run 运行),监听端口 8080

当我在浏览器中键入 example.com 时,我得到一个 apache 示例页面“它可以工作!” 如果我写 example.com:8080 我会得到我的 webapp

问题很简单,当我编写 example.com 时如何重定向以访问我的 webapp?

我无法将端口码头更改为 80,这是错误的。 命令“sudo iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080”没有任何效果

那么,我怎样才能让 apache 将 80 重定向到 8080?在 sites-enabled/default-000 中?

请仔细解释,我是系统新手;(

谢谢

编辑

我用这个解决了:

http://czetsuya-tech.blogspot.com.es/2012/07/how-to-port-forward-apaches-80-to.html#.VImt1XvyOPU

但最后一行:

RewriteRule ^/(.*) ......:8080/0,81 € [P,L]

重启apache时出错 我删除了它并且工作正常。这有什么问题吗?什么是 RewriteRule?

【问题讨论】:

  • 为此使用反向代理。更改内核路由实际上没有任何意义,如果您在第 7 层执行此操作,您将获得额外的花里胡哨和更大的灵活性

标签: apache maven redirect jetty port


【解决方案1】:

使用 IPTABLES 是一种可能的解决方案。我对 IPTABLES 不太了解 - 但那里有很多教程,比如这个:http://proghowto.com/iptables-redirect-port-80-to-port-8080

如果您在目标端口上有一个正在运行的守护进程 (apache),我不知道这是否有效。

另一种解决方案是使用 apache 中的代理模块将请求传递给您的 webapp。在 Linux 上,仅允许 root 用户使用低于 1000 的端口。在 Windows 上,您应该能够简单地更改码头配置中的端口。

我经常使用两个教程,它们适用于 apache 和 tomcat,但对 apache 方面没有影响:

这是一个很常见的设置。此外,由于代理,几乎没有性能影响。并不是说用户会注意到任何事情。

【讨论】: