Apache:将许多不同端口上的流量代理到另一台服务器上的相同端口的更好方法

Apache:将许多不同端口上的流量代理到另一台服务器上的相同端口的更好方法

配置 apache 2.2 以侦听 20 个不同端口然后将这些请求代理到另一台服务器上的相同端口的最简单方法是什么?例如,对于端口 1000 到 1019,对 的请求http://myserver.com:1000/应代理转发到http://otherserver.com:1000/,对 的请求http://myserver.com:1001/应代理转发到http://otherserver.com:1001/,依此类推。

使用 20 条指令即可轻松让我的服务器监听 20 个不同的端口Listen。问题在于代理指令。mod_proxy模块的ProxyPass指令似乎没有地方引用端口号。我可以创建 20 个不同的VirtualHost部分,并在每个部分中放入代理指令:

<VirtualHost *:1000>
  ProxyPass        / http://otherserver.com:1000/
  ProxyPassReverse / http://otherserver.com:1000/
</VirtualHost>

<VirtualHost *:1001>
  ProxyPass        / http://otherserver.com:1001/
  ProxyPassReverse / http://otherserver.com:1001/
</VirtualHost>

<VirtualHost *:1002>
  ProxyPass        / http://otherserver.com:1002/
  ProxyPassReverse / http://otherserver.com:1002/
</VirtualHost>

...

但这似乎非常繁琐。虽然我可以通过模板以编程方式生成所有这些块,但我不得不相信有更好的方法,也许使用单一mod_rewrite规则或类似的东西?有什么建议吗?

答案1

您最好使用“rinetd”,它是一个 TCP 连接转发器。

此处介绍并记录如下:

答案2

编写一个脚本来编写您的配置。

相关内容