mesosphere / marathon-lb

Marathon-lb is a service discovery & load balancing tool for DC/OS
Apache License 2.0
450 stars 300 forks source link

vhost don't work with healtcheck begins `?` #455

Open JaSei opened 7 years ago

JaSei commented 7 years ago

Hi, I have problem with healtcheck:

  "healthChecks": [
    {
      "gracePeriodSeconds": 300,
      "intervalSeconds": 60,
      "timeoutSeconds": 20,
      "maxConsecutiveFailures": 3,
      "portIndex": 0,
      "path": "?url=http://google.com",
      "protocol": "HTTP",
      "ignoreHttp1xx": false
    }
  ],

the address set in HAPROXY_0_VHOST label don't work (I see status 503)

If I change path in healtcheck to /?url=http://google.com address in HAPROXY_0_VHOST works well...

marathon-lb run in docker

docker run --name marathon-lb --dns 10.1.55.176 -v /etc/marathon-lb/templates:/marathon-lb/templates -e PORTS=9090 --net=host --privileged=true mesosphere/marathon-lb:v1.7.0 sse --marathon http://localhost:8080 --group internal --haproxy-map

and

_haproxy_getconfig:

frontend dod_manet-server_10116
  bind *:10116
  mode http
  use_backend dod_manet-server_10116

backend dod_manet-server_10116
  balance roundrobin
  mode http
  option forwardfor
  http-request set-header X-Forwarded-Port %[dst_port]
  http-request add-header X-Forwarded-Proto https if { ssl_fc }
  option  httpchk GET ?url=http://google.com
  timeout check 20s
  server prg33-004_srv_int_avast_com_10_1_55_48_31480 10.1.55.48:31480 check inter 60s fall 4
JaSei commented 7 years ago

I find this stackoverflow question about query string without slash... I know this is incorrect case, but marathon-lb could be this incorrect case handling....

thanks...