You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Squid如何基于请求URL域名选择不同cache_peer父代理

可以实现,你可以通过Squid的ACL规则 + cache_peer绑定配置完成按目标主机名选择父代理的需求,具体配置方案如下:

完整配置步骤

1. 定义父代理节点

首先在Squid配置文件(通常为/etc/squid/squid.conf)中添加你需要用到的父代理配置:

# proxy1配置:父代理类型、HTTP端口3128(按需修改为实际端口)、禁用ICP查询适配固定转发场景
cache_peer proxy1.host parent 3128 0 no-query no-digest
# proxy2配置
cache_peer proxy2.host parent 3128 0 no-query no-digest

如果父代理需要身份认证,在对应行末尾添加login=你的账号:你的密码参数即可;如果需要通过HTTPS协议连接父代理,额外添加ssl参数。

2. 定义匹配目标域名的ACL规则

新增ACL规则匹配你需要分流的域名,dstdomain前加.代表通配该域名的所有子域名(含根域名本身),完全符合*.example.com的匹配需求:

# 匹配所有*.example1.com的请求
acl target_example1 dstdomain .example1.com
# 匹配所有*.example2.com、*.example3.com的请求
acl target_example23 dstdomain .example2.com .example3.com

3. 绑定ACL规则与对应父代理

通过cache_peer_domain指令完成分流绑定:

# 匹配example1规则的请求走proxy1
cache_peer_domain proxy1.host target_example1
# 匹配example2/3规则的请求走proxy2
cache_peer_domain proxy2.host target_example23

如果除上述域名外,其他请求需要直接访问公网不经过父代理,添加如下兜底规则:

always_direct allow !target_example1 !target_example23

如果其他请求需要走默认父代理,补充对应的ACL和绑定规则即可。

4. 配置生效

配置完成后先执行squid -k parse校验语法是否存在错误,无报错后执行squid -k reconfigure加载新配置即可生效。

注意事项
  • Squid 3.5及以上版本无需额外配置SSL Bump,即可正常识别HTTPS请求的SNI主机名,上述规则对HTTP、HTTPS请求同时生效
  • 如果需要更复杂的分流逻辑(比如按源IP、URL路径匹配),替换上述ACL的dstdomain为对应匹配类型即可

内容的提问来源于stack exchange,提问作者xtremebytes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 15:09:00