title: Traefik backend health checks not working
body: <p>Traefik Version: <strong>1.6.4</strong></p>
  
  <p>My company uses Docker Swarm to present applications as services, using Traefik for routing.  All has been working fine so far, but we're having trouble implementing backend health checks in Traefik.</p>
  
  <p>All of our applications expose a health check, which works fine and returns 200 via a simple curl or hitting it in a web browser.  We've applied Docker labels to our swarm services to reflect these health checks.  As an example:</p>
  
  <pre><code>traefik.backend.healthcheck.path=/health
  traefik.backend.healthcheck.interval=30s
  </code></pre>
  
  <p>The Traefik service logs report the following:</p>
  
  <pre><code>{"level":"warning","msg":"Health check still failing. Backend: \"backend-for-my-app\" URL: \"https://10.0.0.x:8080\" Reason: received non-200 status code: 406","time":"2018-07-10T19:41:25Z"}
  </code></pre>
  
  <p>Within the app containers we have Apache running with ModSecurity.  ModSecurity is blocking the request because the host header is a numeric IP address.  I shelled into the Traefik container and did a couple curls against the app container to test:</p>
  
  <p><code>curl -k https://10.0.0.x:8080/health</code>  &lt;-- ModSecurity blocks this, returns a 406<br>
  <code>curl -k -H "Host: myapp.company.com" https://10.0.0.x:8080/health</code> &lt;-- works fine, returns a 200</p>
  
  <p>TLDR: I need a way to set a host header for the Traefik backend health check.  In Traefik docs, I don't see a way of doing this.  Has anyone run into this issue, and/or know of a solution?</p>