我有多个子域(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 的解决方案
答案1
Squid 并不是反向代理的最佳解决方案——只要有足够的刺激它就能做到,但它不是我会使用的工具。
对于简单的代理需求,我会使用nginx HttpProxy模块(或 Apache 的mod_proxy
(如果您喜欢的话),如果缓存是优先事项,则切换到 varnish。使用网络服务器的好处是它们简单、强大,您可能已经使用过它们,因此对它们有所了解。另一方面,Varnish 有点小众,但是当您想要某种可以缓存内容的东西时,它真的是最好的选择。
不过,要记住的是,基于名称的代理重定向仅适用于支持指示其所连接服务名称的协议 - 这极大地限制了您的协议选择。因此,如果您正在执行除 HTTP 之外的其他操作,则可能需要与网络提供商讨论更多 IP(尽管我们的 IPv4 空间已经用完了)。它确实使生活变得轻松很多。