小编Phi*_*hil的帖子

如何为在同一台服务器上运行的两台服务器获取端口重定向?

我有一个运行 Amazon 的云,它托管两个 tomcat 实例(端口 8080 和 8081),每个 tomcat 为不同的客户运行一个 Web 应用程序(foo 和 bar)。

但是,我在尝试使端口重定向正常工作时遇到问题。

我想谁在来我的网站的用户www.foo.com将被自动地重定向到www.foo.com:8080/foo_app,谁在来我的网站的用户www.bar.com将被自动地重定向到www.bar.com:8180/bar_app

但是,我也希望端口号不是 URL 的一部分。这一点非常重要,因为大多数用户所处的环境无法导航www.foo.com:8080www.bar.com:8180只能在端口 80 上进行通信。

所以任何输入的人都www.bar.com/bar_app应该被重定向到www.bar.com:8081/bar_app但 URL 仍然必须是www.bar.com/bar_app

我试图实现这一目标的方法是执行以下操作:

我使用以下命令将端口 80 上的任何通信映射到端口 8080

sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080

这对 foo 用户非常有用,但 bar 用户也被重定向。是否可以使此 iptable 映射仅适用于某些“服务器”?

我还添加了条目 /etc/apache2/httpd.conf

允许从我的服务器映射到实际的 webapp

<VirtualHost *:80>
    ProxyPreserveHost On
    ProxyPass / http://123.123.123.123:8080/foo_app
    ProxyPassReverse / …
Run Code Online (Sandbox Code Playgroud)

tomcat port redirect apache-2.2

1
推荐指数
1
解决办法
2809
查看次数

标签 统计

apache-2.2 ×1

port ×1

redirect ×1

tomcat ×1