Custom Error Webpage for Avi-Generated Responses
This article describes how one can generate one’s own custom error page, with application-specific content.
Background
Currently, Avi Vantage can generate custom responses from policy, DataScript, or a POOL_DOWN action. Other than this, there are cases where we are unable to communicate with a back-end server (for instance 502), where we respond back to the client with a hard-coded page (non-custom). Customers occasionally prefer to generate their own custom error page, so that it doesn’t have “Avi” on the page, but rather some application-specific message.
How it Works
With Avi Vantage 17.1.3, a new DataScript event named RESP_FAILED is supported. It triggers when any error/timeout happens up to the point that a valid response header is received from the server and forwarded to client. For instance:
- TCP/SSL connect/handshake to server fails
- Request proxy/send to server times out
- No response or partial response headers or bad response headers from the server
- Server resets connection while the Avi SE is waiting for the server to respond
A DataScript attached to the RESP_FAILED
event is executed. Example functions exposed to the script are avi.http.response()
, avi.http.redirect()
, and (the newly created) avi.http.internal_status()
. The user can use these to customize response for the different types of failures, log the reason in Avi Logs, etc. Refer to the below Knowledge Base articles:
Related Reading
- DataScript Functions lists the newly-added
avi.http.internal_status()
function, which returns the reason why the request to server failed. - DataScript: avi.http.internal_status
- DataScript Object Model talks about
RESP_FAILED
- DataScript Events talks about RESP_FAILED