3
votes

In our web site we have a route /health/xxx, where you can check the health of the site. In the xxx part you can add anything so we can distinguish different pollers. We are now seeing that Azure Front Door is polling the site several times per second. All polls are returning http status 200 and the site is running.

What could be the cause of Front door polling so often. Also we have specified the probes to be done with https but they are done with http.

Settings

enter image description here

Logs

2020-02-04T08:31:14.788625531Z Request starting HTTP/1.1 GET http://ourappservice.azurewebsites.net/health/frontdoor
2020-02-04T08:31:14.889718097Z Request starting HTTP/1.1 GET http://ourappservice.azurewebsites.net/health/frontdoor
2020-02-04T08:31:15.056720867Z Request starting HTTP/1.1 GET http://ourappservice.azurewebsites.net/health/frontdoor
2020-02-04T08:31:15.108005604Z Request starting HTTP/1.1 GET http://ourappservice.azurewebsites.net/health/frontdoor
2020-02-04T08:31:15.694524409Z Request starting HTTP/1.1 GET http://ourappservice.azurewebsites.net/health/frontdoor
2020-02-04T08:31:16.228060671Z Request starting HTTP/1.1 GET http://ourappservice.azurewebsites.net/health/frontdoor
2020-02-04T08:31:16.531979272Z Request starting HTTP/1.1 GET http://ourappservice.azurewebsites.net/health/frontdoor
2020-02-04T08:31:16.566820933Z Request starting HTTP/1.1 GET http://ourappservice.azurewebsites.net/health/frontdoor
2020-02-04T08:31:16.588722534Z Request starting HTTP/1.1 GET http://ourappservice.azurewebsites.net/health/frontdoor
2020-02-04T08:31:17.950628116Z Request starting HTTP/1.1 GET http://ourappservice.azurewebsites.net/health/frontdoor
2020-02-04T08:31:17.992829110Z Request starting HTTP/1.1 GET http://ourappservice.azurewebsites.net/health/frontdoor
2020-02-04T08:31:18.337208799Z Request starting HTTP/1.1 GET http://ourappservice.azurewebsites.net/health/frontdoor
2020-02-04T08:31:18.392764355Z Request starting HTTP/1.1 GET http://ourappservice.azurewebsites.net/health/frontdoor
2020-02-04T08:31:18.421466287Z Request starting HTTP/1.1 GET http://ourappservice.azurewebsites.net/health/frontdoor
2020-02-04T08:31:18.529090784Z Request starting HTTP/1.1 GET http://ourappservice.azurewebsites.net/health/frontdoor
2020-02-04T08:31:18.743391272Z Request starting HTTP/1.1 GET http://ourappservice.azurewebsites.net/health/frontdoor
2020-02-04T08:31:18.777998932Z Request starting HTTP/1.1 GET http://ourappservice.azurewebsites.net/health/frontdoor
2020-02-04T08:31:18.962965185Z Request starting HTTP/1.1 GET http://ourappservice.azurewebsites.net/health/frontdoor
2020-02-04T08:31:19.251694816Z Request starting HTTP/1.1 GET http://ourappservice.azurewebsites.net/health/frontdoor

1

1 Answers

2
votes
  • HTTP or HTTPS is NOT HTTP/1.1

HTTP/1.1 shows the current protocol for your web application. The probe is done through https only. HTTP/1.1 is the specification for HTTP or HTTPS protocol.

Update 1:


For example - please refer to the image below taken from Fiddler for an HTTPS request: enter image description here

You can observe that the request is using HTTPS protocol but it belongs to HTTP/1.1 protocol specification.


For the frequent probing - it's the default behavior of Azure Front Door. It keep polling the health probe to decide the fastest/best server from the backend pool where it will route the first request it receives.

Front Door environments periodically sends a synthetic HTTP/HTTPS request to each of your configured backends. Front Door then uses responses from these probes to determine the "best" backends to which it should route real client requests.

Ref: Health Probes


For faster failovers, set the interval to a lower value. The lower the value, the higher the health probe volume your backends receive. For example, if the interval is set to 30 seconds with 90 Front Door environments or POPs globally, each backend will receive about 3-5 probe requests per second.

Ref: https://docs.microsoft.com/en-us/azure/frontdoor/front-door-backend-pool


Not all the edge will probe your backend, just the nearest ones closest to the ones receiving the requests. Refer to this video to understand how it works in details.

Hope this helps!