我正在使用 marathon-lb 运行 DC/OS 1.7。
spray.io 1.3.3 向所有 marathon-lb/HAProxy 健康检查调用返回 400:request has a relative URI and is missing a Host header
因此 marathon-lb 永远不会将任何请求路由到服务。
马拉松 json 中的健康检查是:
"healthChecks": [
{
"path": "/health",
"protocol": "HTTP",
"portIndex": 0,
"gracePeriodSeconds": 10,
"intervalSeconds": 2,
"timeoutSeconds": 10,
"maxConsecutiveFailures": 10,
"ignoreHttp1xx": false
} ],
docker容器中spray.io的日志记录是:
[警告] [08/19/2016 23:53:42.534] [asp-service-akka.actor.default-dispatcher-5] [akka://asp-service/user/IO-HTTP/listener-0/4 ] 非法请求,以状态“400 Bad Request”响应:非法请求:无法建立 HttpRequest(GET,/health,List(),Empty,HTTP/1.0) 的有效请求 URI,请求具有相对 URI,并且缺少
Host
标头
/health
端点可以从 curl 对 mesos 管理的 ip:port 正常工作。
我找不到任何关于通过 marathon-lb 使 HAProxy 更宽容或抑制 spray.io 的 400 的文档。