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

HAProxy配置问题:仅允许单个URL访问却无法拦截其他文件

HAProxy配置错误分析及修正方案

现有配置的核心问题

  1. ACL逻辑错误
    你定义的两个同名ACL backend_acl_agendamento 在HAProxy中是逻辑或的关系——只要请求路径满足「以/Qweb/common开头」或者「以UserSchedule.aspx结尾」,就会匹配并转发到后端。这就导致像/Qweb/common/Login.aspx这类符合路径前缀但不是目标文件的请求也能被放行,完全违背了「仅允许指定URL」的需求。

  2. 缺少默认拦截规则
    现有配置只定义了匹配成功时的后端转发规则,但没有对不匹配的请求做拦截处理。如果HAProxy存在默认后端,未匹配的请求会被转发到默认后端;即使没有默认后端,HAProxy也可能返回默认响应而非拦截,导致其他URL仍可访问。

修正后的配置示例

frontend agendamento_frontend
    # 用不同名称的ACL,通过逻辑与(AND)组合,精确匹配目标URL
    acl path_prefix path_beg -i /Qweb/Common
    acl path_suffix path_end -i UserSchedule.aspx
    # 仅同时满足前缀和后缀的请求,才转发到后端
    use_backend agendamento_backend if path_prefix AND path_suffix
    # 所有不匹配的请求直接拒绝
    http-request deny

额外说明

  • 路径大小写:原需求中的路径是/Qweb/Common(大写C),你的ACL用了/Qweb/common(小写c),虽然加了-i忽略大小写,但统一大小写能让配置更严谨。
  • 自定义拦截响应:可以给http-request deny添加参数,比如http-request deny deny_status 403,返回403错误码明确告知用户无访问权限。

内容的提问来源于stack exchange,提问作者Antônio Godinho

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 03:10:56