Using a restart is a good option to check multiple backends for a single request. This can be created using a cache setting rule and request headers.
Create a new cache setting rule
Follow these steps to create a cache restart within vcl_fetch.
- Log in to the Fastly web interface and click the Configure link.
- From the service menu, select the appropriate service.
- Click the Edit configuration button and then select Clone active. The Domains page appears.
- Click the Settings link. The Settings page appears.
-
Click the Create cache setting button. The Create a cache setting page appears.
- Fill out the Create a cache setting fields as follows:
- In the Name field, type
Return Restart
(or any meaningful, preferred name). - In the TTL (seconds) field, type
0
. - From the Action menu, select Restart processing.
- In the Stale TTL (seconds) field, type
0
.
- In the Name field, type
- Click the Create button. The new cache setting appears on the Settings page.
-
On the Settings page, click the Attach a condition link next to the cache setting you just created. The Create a new cache condition window appears.
- Fill out the Create a new cache condition fields as follows:
- In the Name field, type
Restart Request
(or any meaningful, preferred name). - In the Apply if field, type
beresp.status != 200 && beresp.status != 304
.
- In the Name field, type
- Click the Save and apply to button to create the condition.
Create new request headers
Follow these steps to create a request header within vcl_recv.
- Click the Content link. The Content page appears.
-
Click the Create header button. The Create a header page appears.
- Fill out the Create a new header fields as follows:
- In the Name field, type
Fastly Internal Shielding
(or any meaningful, preferred name). - From the Type menu, select Request, and from the Action menu, select Set.
- In the Destination field, type
http.Fastly-Force-Shield
. - In the Source field, type
"yes"
. - From the Ignore if set menu, select No.
- In the Priority field, type
10
.
- In the Name field, type
- Click the Create button. The new header appears on the Content page.
-
Click the Create header button to create another header to switch to the next backend. The Create a header page appears.
- Fill out the Create a header fields as follows:
- In the Name field, type
Second Backend
(or any meaningful, preferred name). - From the Type menu, select Request, and from the Action menu, select Set.
- In the Destination field, type
backend
. - In the Source field, type
Second_Backend
(this should match the name of your other backend). - From the Ignore if set menu, select No.
- In the Priority field, type
11
.
- In the Name field, type
- Click the Create button. The new header appears on the Content page.
Create new header conditions
Follow these steps to create conditions for the headers.
-
On the Content page, click the Attach a condition link next to one of the headers you just created. The Create a new request condition window appears.
- Fill out the Create a new request condition fields as follows:
- In the Name field, type
Req.request
(or any meaningful, preferred name). - In the Apply if field, type
req.restarts == 1
.
- In the Name field, type
- Click Save and apply to. The condition appears on the Content page.
- Repeat steps 1-3 for the other header.
- Click the Activate button to deploy your configuration changes.