根据 Squid 服务器子域使用不同的代理

根据 Squid 服务器子域使用不同的代理

我在 DigitalOcean 上托管一个 Squid 服务器,并带有子域通配符,因此每个子域都会重定向到我的服务器。

在我的 Squid 配置中,有以下两行

cache_peer proxydomain.tld parent 20000 0 no-query no-digest
never_direct allow all

将所有流量重定向到另一个代理服务器,效果很好。

现在我想将不同的子域重定向到不同的代理域,因此如果您使用 first.mysquidserver.com,它会将您重定向到 proxydomain.tld,如果您使用 second.mysquidserver.com,它会将您重定向到 anotherproxydomain.tld

我不想根据请求的站点使用不同的代理,我想根据我的 Squid 服务器使用的子域名使用不同的代理!

文档和 Google 都帮不上什么忙。不确定 Squid 是否可以做到这一点?如果不行,那么 NGINX 之类的东西能行吗?我知道我可以将子域名重定向到其他服务器,但这不是一个好的解决方案

希望我能清楚地表达我的意思,谢谢你的帮助。

答案1

如果您不需要 squid 的特定功能,我会选择像 apache httpd 这样的 Web 服务器(甚至是 nginx,但我不会选择...),因为配置更广为人知且简单。
但使用 squid 当然是可能的。

我假设您已安装最新版本 (v4)。
将 http_port 配置为 accel。
设置不同的缓存对等体(作为原始服务器或上游代理,具体取决于它们是什么)。
为 dstdomains 创建 ACL(每个 cache_peer 或 cache_peer 组一个 ACL)。
使用 cache_peer_access 配置路由(根据 ACL 定义哪些 ceche_peers 用于请求)。

相关内容