首页 > 解决方案 > 处理重写规则后的 Haproxy 记录最终路径

问题描述

在 Haproxy 1.8.8 中,我试图记录最终的 URI(不是在前端收到的传入 URI),在后端部分,我有代理重写规则来更改路径。我希望新路径出现在 haproxy 日志中。这是示例 haproxy 配置文件,我想在日志/defgh/v1/newpath中的某处记录。默认情况下,http log-format 仅捕获请求 URI,在下面的示例中它将用于/abc/oldpath。任何人都可以建议在处理重写规则后如何捕获最终路径

示例 haproxy 配置

frontend http-in
    option httplog
    bind *:80
    acl url_oldpath path_beg /abc/oldpath
    use_backend servers if url_oldpath

backend servers
    reqirep ^([^\ ]*)\ /abc/oldpath(.*) \1\ /defgh/v1/newpath\2
    server server1 myServerIP:80 

标签: loggingurl-rewritinghaproxyhttpbackend

解决方案


您无法在 HAProxy 中记录响应路径:

http mode only | %HP  | HTTP request URI without query string (path)  | string  

只有请求路径可用于记录。请参阅HAProxy 文档中可记录的字段。

您的后端服务器是否能够在收到请求时记录它们?您可以在那里看到受重写影响的最终路径。


推荐阅读