无需重启Squid服务,如何修改ACL目标域名配置?
无需重启/重载Squid即可更新域名ACL规则的方案
你已经通过外部文件配置了域名ACL,现在想修改文件但不想动服务?没问题,这里有两个实用方案,看你需求选:
方案1:用轻量重载命令(完全不中断服务)
首先得澄清一个误区:squid -k reconfigure并不是重启Squid服务,它只是让Squid重新读取配置文件和所有外部ACL文件,现有连接完全不受影响,服务也不会中断。这是官方推荐的更新外部ACL的方式,操作起来也简单:
修改完/etc/squid3/acceptable_sites后,直接执行:
squid -k reconfigure
如果你的Squid是用systemd管理的,也可以用:
systemctl reload squid
同样是轻量重载,不会重启服务。
方案2:让Squid自动定期刷新ACL文件
如果连手动执行重载命令都不想做,在Squid 3.2及以上版本,你可以修改squid.conf里的ACL定义,加上refresh参数,让Squid自动定期检查文件变化并加载新内容:
把原来的ACL定义改成:
acl ourusers src x.x.x.x acl goodsites dstdomain "/etc/squid3/acceptable_sites" refresh=10 http_access allow goodsites ourusers
这里的refresh=10表示Squid每10秒检查一次acceptable_sites文件的修改时间,一旦发现文件有更新,就自动重新加载,全程不需要你手动干预。你可以根据需求调整刷新间隔(比如改成300就是5分钟)。
注意:这个refresh参数只对基于文件的ACL生效,而且需要Squid版本在3.2及以上,如果你的版本比较老,还是用方案1更稳妥。
内容的提问来源于stack exchange,提问作者Omidreza Bagheri
相关产品推荐
相关产品推荐

