将一个外部 IP 上的多个子域名路由到多个内部 IP

将一个外部 IP 上的多个子域名路由到多个内部 IP

我有多个子域(git.example.org、build.example.org 等),我有一个带外部 IP 的路由器,并且在主机上有几个带内部 IP 的虚拟机。现在我想将 git.example.org 路由到内部 IP 10.0.2.1,将 build.example.org 路由到内部 IP 10.0.2.2。我该怎么做?

我在路由器中设置,端口 80 上的所有流量都流向具有内部 IP 10.0.2.3 的主机,并在该计算机上安装了 Squid。

我在 squid.conf 文件中添加了以下几行:

cache_peer 10.0.2.1 parent 80 0 no-query originserver name=server_1
cache_peer_domain server_1 git.example.org
cache_peer 10.0.2.2 parent 80 0 no-query originserver name=server_2
cache_peer_domain server_2 build.example.org

但这对我来说不起作用。:( 任何帮助都值得感激。

问候尼尔斯

更新:这是 Apache 的解决方案

https://serverfault.com/a/273693

答案1

Squid 并不是反向代理的最佳解决方案——只要有足够的刺激它就能做到,但它不是我会使用的工具。

对于简单的代理需求,我会使用nginx HttpProxy模块(或 Apache 的mod_proxy(如果您喜欢的话),如果缓存是优先事项,则切换到 varnish。使用网络服务器的好处是它们简单、强大,您可能已经使用过它们,因此对它们有所了解。另一方面,Varnish 有点小众,但是当您想要某种可以缓存内容的东西时,它真的是最好的选择。

不过,要记住的是,基于名称的代理重定向仅适用于支持指示其所连接服务名称的协议 - 这极大地限制了您的协议​​选择。因此,如果您正在执行除 HTTP 之外的其他操作,则可能需要与网络提供商讨论更多 IP(尽管我们的 IPv4 空间已经用完了)。它确实使生活变得轻松很多。

相关内容