我正在尝试通过类似以下方式为 Squid 实现自定义身份验证器
auth_param basic program my_authenticator.sh
在/etc/squid3/squid.conf
文件中。一切正常,但我想做出改进。
的职责my_authenticator.sh
很简单:Squid 发送用户名和密码,并等待OK
返回ERR
。
我想要做的改进是向用户解释为什么他们被拒绝服务,例如
ERR You have been browsing too much, come back in 24 hours
根据Squid 文档,这是很有可能的:
“ERR”响应后面可以选择性地跟有错误描述(在返回的错误页面中以 %m 形式提供)。
有人能解释一下这是什么%m
意思吗?我一直试图打印一段简单的文本ERR
(不带引号,如上所示),但这段文本没有出现在浏览器弹出窗口中。有什么想法吗?
答案1
用于%m
将您的自定义消息插入到用户在 squid 响应时看到的错误页面中。要使用它,请找出您使用的语言的 squid 模板错误页面的位置。在我的 Ubuntu 系统上,英语错误页面位于
/usr/share/squid/errors/en
每个文件都是一个模板 html 文件,您可以修改它以满足自己的需求,也可以编写自己的文件。为了测试这一点,我修改了我的 ERR_CACHE_ACCESS_DENIED,例如
<html>
<body>
<h1>ERROR</h1>
<h2>%m</h2>
</body>
</html>
在 ERR 行上显示自定义身份验证脚本返回的消息。