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

Squid代理配置deny_info后如何显示自定义错误页面?

Squid自定义错误页不显示问题解决

问题描述

我配置了以下ACLs:

acl mortales src "/etc/squid/listas/mortales"
acl bloquear url_regex "/etc/listas/bloqueo"

http_access allow mortales !bloqueo
error_directory /usr/share/squid/errors/en/
deny_info ERR_ACCESS_DENIED mortales

当前问题:Squid已成功拦截黑名单站点,但未显示Squid自定义错误页面,仅展示浏览器自带的通用错误页面。已知新版Firefox等浏览器会优先显示自身通用错误页而非Squid的自定义错误页,希望能强制显示Squid代理的错误页面。

解决方案

  • 调整Squid响应状态码:新版浏览器会自动替换403等标准状态码对应的页面,可改用Squid自定义的非标准状态码,比如493。修改配置:

    deny_info 493 ERR_ACCESS_DENIED mortales
    

    同时确保error_directory目录下存在对应493状态的错误页文件,若没有可复制现有403页面文件并重命名为493,按需修改内容。

  • 添加响应头强制浏览器使用自定义页:在Squid配置中加入以下指令,阻止浏览器猜测响应内容类型:

    error_header X-Content-Type-Options nosniff
    
  • 关闭浏览器友好错误页功能:以Firefox为例,在about:config中搜索browser.xul.error_pages.enabled并设置为false,此方法需逐个客户端配置,适合小规模场景。

  • 验证Squid基础配置正确性:

    • 确认error_directory路径正确,且Squid进程拥有该目录及文件的读取权限;
    • 检查ERR_ACCESS_DENIED对应文件存在且内容完整;
    • 修改配置后重启Squid服务:systemctl restart squid

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 21:53:08