【问题标题】:Client sent malformed Host header客户端发送了格式错误的主机头
【发布时间】:2012-10-18 14:10:46
【问题描述】:

我在 Apache 的错误日志中不断收到此错误:

[client 127.0.0.1] Client sent malformed Host header

每 5 分钟一次。这是因为我们在服务器上安装了 Varnish,但我不明白为什么以及如何修复它。我什至尝试将 Apache 的 error_log 详细程度设置为调试,但没有提供其他有用的信息。有什么想法吗?

我们的 Varnish 配置非常基础:

backend default {
     .host = "127.0.0.1";
     .port = "9001";
}

sub vcl_recv {
    remove req.http.X-Forwarded-For;
    set req.http.X-Forwarded-For = client.ip;
}

我们有几个虚拟主机在 9001 端口上运行。

谁能告诉我更多关于这个错误以及如何解决或至少调查它的信息?

【问题讨论】:

    标签: apache varnish


    【解决方案1】:

    Varnish 在您的后端执行health check,这可能需要更精确地配置以便 Apache 接受它。如果这不能解决您的问题,请尝试在 Apache 中记录 User-Agent 标头以找出是谁发出了格式错误的请求。

    【讨论】:

    • 是否可以在错误日志中捕获用户代理?我的 LogFormat 指令中已经有 User-Agent,但我只得到了我在问题中粘贴的行
    • 尝试更改 Varnsh 健康检查的时间间隔。当您的错误发生在新的时间间隔时,您就知道它是 Varnish。否则,您可能需要将 TCP 通信转储到 Apache 以查看发生了什么。
    • 每 10 分钟更改一次健康检查,我每 5 分 33 秒不断收到格式错误的标头消息.. :/
    • 您还有其他健康/监控工具吗?
    • 嗯,没有。你有什么工具可以建议调查这个错误(或如何回溯到错误的根源)?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-09
    • 1970-01-01
    • 1970-01-01
    • 2011-02-05
    • 2019-10-20
    相关资源
    最近更新 更多