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