41 lines
1.1 KiB
Markdown
41 lines
1.1 KiB
Markdown
|
# Chain
|
||
|
|
||
|
When One Isn't Enougth
|
||
|
{: .subtitle }
|
||
|
|
||
|
![Chain](../assets/img/middleware/chain.png)
|
||
|
|
||
|
The Chain middleware enables you to define reusable combinations of other pieces of middleware.
|
||
|
It makes reusing the same groups easier.
|
||
|
|
||
|
## Configuration Example
|
||
|
|
||
|
??? example "A Chain for WhiteList, BasicAuth, and HTTPS"
|
||
|
|
||
|
```toml
|
||
|
# ...
|
||
|
[Routers]
|
||
|
[Routers.router1]
|
||
|
service = "service1"
|
||
|
middlewares = ["secured"]
|
||
|
rule = "Host: mydomain"
|
||
|
|
||
|
[Middlewares]
|
||
|
[Middlewares.secured.Chain]
|
||
|
middlewares = ["https-only", "known-ips", "auth-users"]
|
||
|
|
||
|
[Middlewares.auth-users.BasicAuth]
|
||
|
users = ["test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/"]
|
||
|
[Middlewares.https-only.SchemeRedirect]
|
||
|
scheme = "https"
|
||
|
[Middlewares.known-ips.ipWhiteList]
|
||
|
sourceRange = ["192.168.1.7", "x.x.x.x", "x.x.x.x"]
|
||
|
|
||
|
[Services]
|
||
|
[Services.service1]
|
||
|
[Services.service1.LoadBalancer]
|
||
|
[[Services.service1.LoadBalancer.Servers]]
|
||
|
URL = "http://127.0.0.1:80"
|
||
|
Weight = 1
|
||
|
```
|