Azure Application Gateway – Backend Health Unknown
Azure Application Gateway – Backend Health Unknown?
If you’re using Azure Application Gateway and you see:
Backend health: UNKNOWN
Backend health: UNHEALTHY
Don’t panic. This is a common issue — and we’ll walk through how to fix it end-to-end, even if you’re new to Azure.
What Does “Unknown” or “Unhealthy” Mean?
- Unknown = App Gateway can’t reach the backend (network issue)
- Unhealthy = App Gateway can reach the backend, but probe failed (wrong path, port, etc.)
Step-by-Step Troubleshooting
Step 1: Check Backend Pool IP/VM
Go to: App Gateway → Backend pools Confirm:
- Correct IP or FQDN
- The backend (VM, App, etc.) is running
- If using FQDN, DNS must be resolvable
Step 2: Validate Probes
App Gateway → Health Probes
- Confirm the path exists — e.g.,
/health,/status, etc. - Check protocol (HTTP or HTTPS)
- Ensure custom host name (if used) matches backend cert (for HTTPS)
Avoid using / as probe path for apps that require login or redirect.
Step 3: Review Listener + HTTP Settings
App Gateway → HTTP Settings
- Backend port = matches backend (usually 80 or 443)
- Use correct protocol
- If HTTPS: Set pick host name from backend, or set manually
- Associate with correct probe
Step 4: Backend NSG and Routes
Check backend subnet’s NSG:
Allow:
- Inbound from App Gateway subnet on port 80/443
- Outbound to App Gateway if response is needed
Check UDR (User Defined Routes):
Avoid sending App Gateway traffic to NVA/firewall unless configured properly.
Step 5: Diagnose from App Gateway
Go to:
App Gateway → Backend health
Here you’ll see:
| Backend | Status | Code | Description |
|---|---|---|---|
| 10.0.1.4 | Unknown | 0 | No response |
| 10.0.1.5 | Unhealthy | 403 | Probe failed auth |
Click each backend to view probe logs and exact error
Step 6: Use Network Watcher
Enable Connection Troubleshoot from:
Network Watcher → Connection troubleshoot
- Test from App Gateway subnet → Backend IP:Port
- Verify reachability and response time
Fix Summary
| Issue | Fix |
|---|---|
| Backend health Unknown | NSG/UDR block, wrong IP, DNS issue |
| Backend health Unhealthy | Wrong probe path, wrong port/cert |
| HTTPS failing probe | Hostname mismatch or cert issue |
| DNS FQDN backend unreachable | Private DNS or no resolution |
| VMs in stopped state | Start them or replace in backend pool |
Quick Fix – Sample NSG Rule
az network nsg rule create \
--resource-group myRG \
--nsg-name backend-nsg \
--name AllowAppGw \
--priority 100 \
--direction Inbound \
--access Allow \
--protocol Tcp \
--source-address-prefixes <AppGwSubnetPrefix> \
--destination-port-ranges 80 443
Final Tips:
- Use custom probes over default probes
- Always test probe path manually in browser or Postman
- For HTTPS, check backend certs and hostname validation
- Use FQDN only if DNS is guaranteed to resolve
Need help debugging your Gateway?
Drop a comment or reach out on LinkedIn!
– Kasi @ KasdevTech