2019-02-26 13:50:07 +00:00
|
|
|
# ErrorPage
|
|
|
|
|
|
|
|
It Has Never Been Easier to Say That Something Went Wrong
|
|
|
|
{: .subtitle }
|
|
|
|
|
|
|
|
![ErrorPages](../assets/img/middleware/errorpages.png)
|
|
|
|
|
|
|
|
The ErrorPage middleware returns a custom page in lieu of the default, according to configured ranges of HTTP Status codes.
|
|
|
|
|
|
|
|
!!! important
|
|
|
|
The error page itself is _not_ hosted by Traefik.
|
|
|
|
|
|
|
|
## Configuration Examples
|
|
|
|
|
2019-03-29 11:34:05 +00:00
|
|
|
```yaml tab="Docker"
|
|
|
|
# Dynamic Custom Error Page for 5XX Status Code
|
|
|
|
labels:
|
|
|
|
- "traefik.http.middlewares.test-errorpage.errors.status=500-599",
|
|
|
|
- "traefik.http.middlewares.test-errorpage.errors.service=serviceError",
|
|
|
|
- "traefik.http.middlewares.test-errorpage.errors.query=/{status}.html",
|
|
|
|
```
|
|
|
|
|
|
|
|
```toml tab="File"
|
|
|
|
# Custom Error Page for 5XX
|
|
|
|
[http.routers]
|
|
|
|
[http.routers.router1]
|
|
|
|
Service = "my-service"
|
|
|
|
Rule = Host(`my-domain`)
|
|
|
|
|
|
|
|
[http.middlewares]
|
|
|
|
[http.middlewares.5XX-errors.Errors]
|
|
|
|
status = ["500-599"]
|
|
|
|
service = "error-handler-service"
|
|
|
|
query = "/error.html"
|
|
|
|
|
|
|
|
[http.services]
|
|
|
|
# ... definition of error-handler-service and my-service
|
|
|
|
```
|
|
|
|
|
|
|
|
!!! note
|
|
|
|
In this example, the error page URL is based on the status code (`query=/{status}.html)`.
|
2019-02-26 13:50:07 +00:00
|
|
|
|
|
|
|
## Configuration Options
|
|
|
|
|
|
|
|
### status
|
|
|
|
|
|
|
|
The `status` that will trigger the error page.
|
|
|
|
|
|
|
|
The status code ranges are inclusive (`500-599` will trigger with every code between `500` and `599`, `500` and `599` included).
|
|
|
|
|
|
|
|
!!! Note
|
|
|
|
|
|
|
|
You can define either a status code like `500` or ranges with a syntax like `500-599`.
|
|
|
|
|
|
|
|
### service
|
|
|
|
|
|
|
|
The service that will serve the new requested error page.
|
|
|
|
|
|
|
|
### query
|
|
|
|
|
|
|
|
The URL for the error page (hosted by `service`). You can use `{status}` in the query, that will be replaced by the received status code.
|