我不确定这是否可能,但我想做的如下:
我有一个 IP 地址(动态使用zoneedit.com
以保持其最新状态)。我有一个运行我的主要站点的 Web 服务器,它是一台运行 Apache 的 Ubuntu 机器。我还有一个运行另一个站点的 Windows 2008 服务器。为了混淆视听,我还在 Windows 服务器上运行了我的 Apache 站点的一部分,目前用proxypassreverse
它来从中获取信息。它看起来像这样:
IP 1.2.3.4
maps to example.com
as well as example.org
所有进入端口 80 的请求都被转发到 Apache 框,并且我使用 Virtualhost 设置在需要时代理 Windows 站点。
那么example.com
是一个 Apache 站点,example.com/mywindowssection
Apache 服务器是否使用 proxypassreverse 从 Windows 服务器获取站点的一部分。
example.org
使用 Apache 并proxypassreverse
获取整个站点。
我希望能够将进入我网络的所有 http 请求转发到一台机器,该机器确定谁应该提供该内容?所以:
example.com
将进入 Apache 机器example.org
将会进入 Windows 机器。
我正在设置 Astaro 网关(之前从未这样做过,因此需要一段时间进行配置),因为我的防火墙、dns、dhcp 等,不知道这是否可以处理。如果此过程也需要单独的盒子,我有能力在网络上运行 VM。
谢谢大家的所有反馈。
答案1
我不太清楚你的目标是什么,但是有一个名为磅(可能在 Ubuntu 软件包存储库中可用)它将允许您根据匹配的表达式将 HTTP 请求重定向到不同的后端服务器。
因此,您将在端口 80 上的前端 Ubuntu 服务器上运行 Pound。在后端,您将在其他端口(例如 8080)上运行 Apache+Ubuntu,并在某个端口上运行 Windows 服务器。然后,您告诉 Pound 将请求转发到哪个后端服务器/端口,每个域和/或您需要根据其对请求进行排序的 URL 正则表达式。
我不确定你为什么希望避免使用代理,因为这正是你所需要的。我认为没有代理你无法完成你需要的工作。就此类代理而言,pound 非常小巧且快速。如果你希望避免缓存,由于使用动态内容,pound 不会进行任何缓存。