Where does traffic go if no condition matches?
Short answer
It goes to Default Backend Services. Conditional Backend Services blocks are tried from top to bottom; if none of them matches, the request is directed to the Backend Services in the Default Backend Services list of the vService. If Default Backend Services is empty, an HTTP vService returns 503 Service Unavailable with the TR7 error page, and an L7 TCP vService rejects the connection.
How Does It Work?
- The blocks are tried from top to bottom; the first block whose condition is met receives the request, and the next blocks are not checked.
- If no block matches, Default Backend Services takes effect.
- The Backend Service in Default Backend Services is selected with the LB algorithm and the persistence setting of the vService.
Default Backend Services exists in every vService type (HTTP, L7 TCP, Network); Conditional Backend Services, however, exists only in HTTP and L7 TCP vServices. On a vService where Conditional Backend Services is not used, all traffic goes to Default Backend Services.
By Situation
| Situation | Result |
|---|---|
| No block matched, Default Backend Services is filled in | The Backend Services in Default Backend Services |
| No block matched, Default Backend Services is empty (HTTP) | 503 Service Unavailable (TR7 error page) |
| No block matched, Default Backend Services is empty (L7 TCP) | The connection is rejected (L7 TCP · Default Backend Services) |
| No condition is selected for the block | The block matches no request; the request goes to the next blocks or to Default Backend Services |
| A block matched, but its Backend Services are unreachable | The request is not passed to Default Backend Services; an attempt is made to send it to the Backend Services of that block |
In TR7
- The vService form is saved even while Default Backend Services is empty; on a vService that works only with conditional blocks, requests that fit no block receive the error above. For this reason, a Default Backend Services target is defined for unmatched requests.
- Individual Backend Services or a Backend Group can be added to Default Backend Services; if the same Backend Service is added twice, the form prevents saving with the Duplicated backend services error.
- On an IP:port shared with Virtual Hosting, if the domain name list of no vService matches, the request reaches no vService: 503 is returned to HTTP requests, and the connection is closed for HTTPS.
- Which Backend Service the request went to is seen on the HTTP Logs screen of the vService.
Common Misconceptions
- "If the Backend Services of the matching block are unreachable, the request falls back to Default." Default Backend Services is used only when no block matches.
- "Default Backend Services is mandatory." The form is also saved with an empty Default Backend Services; in that case, unmatched requests receive an error.
- "Default Backend Services is the backup server list." Default is the main target of unmatched traffic; backup behavior is provided by the Backup Service setting in the Backend Service.
How it is done in the documentation
