我在云中有一个 Ubuntu 服务器。我们称之为ServerA。
ServerA安装了 apache2,并为 HTTP 请求提供默认页面。mydomain.com
指向ServerA的 IP,因此默认ServerA的站点也可通过此域名获得。
ServerA安装了 OpenVPN,并作为 VPN 网关供不同客户端连接。
当ServerB作为 OpenVPN 客户端连接到ServerA时,它会被分配到ServerA的 OpenVPN 创建的 OpenVPN 网络中的本地 IP。
我设置myotherdoamin.com
为指向同一个ServerA的 IP。我希望以这种方式配置ServerA,以便如果有 HTTP 请求mydomain.com
进入 - 它被路由到ServerA的 apache2 并提供本地站点。如果有请求myotherdomain.com
进入,我希望ServerA将请求路由到连接的ServerB的 HTTP 端口,从而返回 VPN 客户端的 HTTP 响应。
我的问题是:
- iptables 是否能够基于 HTTP 请求标头进行路由规则?
- apache2 是否能够根据 HTTP 请求标头将请求路由到其他 IP?
- 哪个应用程序最适合处理我想要的行为?
谢谢你。
不,这不对。IPTables 在第 3/4 层工作,HTTP 请求标头在第 7 层。
是的,使用mod_proxy,Apache 可以将这些请求代理到另一台服务器。
如上所述,mod_proxy 可以为您工作,但任何其他可以在第 7 层运行的反向代理都可以解决问题。除了 Apache 的 mod_proxy,Nginx 和 HAproxy 可能是最常见的。