mirror of
				https://github.com/traefik/traefik.git
				synced 2025-10-31 08:21:27 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			116 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			116 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| ---
 | |
| title: "Traefik Proxy Middleware Overview"
 | |
| description: "There are several available middleware in Traefik Proxy used to modify requests or headers, take charge of redirections, add authentication, and so on."
 | |
| ---
 | |
| 
 | |
| # Middlewares
 | |
| 
 | |
| Tweaking the Request
 | |
| {: .subtitle }
 | |
| 
 | |
| Attached to the routers, pieces of middleware are a means of tweaking the requests before they are sent to your [service](../routing/services/index.md) (or before the answer from the services are sent to the clients).
 | |
| 
 | |
| There are several available middleware in Traefik, some can modify the request, the headers, some are in charge of redirections, some add authentication, and so on.
 | |
| 
 | |
| Middlewares that use the same protocol can be combined into chains to fit every scenario.
 | |
| 
 | |
| !!! warning "Provider Namespace"
 | |
| 
 | |
|     Be aware of the concept of Providers Namespace described in the [Configuration Discovery](../providers/overview.md#provider-namespace) section.
 | |
|     It also applies to Middlewares.
 | |
| 
 | |
| ## Configuration Example
 | |
| 
 | |
| ```yaml tab="Docker & Swarm"
 | |
| # As a Docker Label
 | |
| whoami:
 | |
|   #  A container that exposes an API to show its IP address
 | |
|   image: traefik/whoami
 | |
|   labels:
 | |
|     # Create a middleware named `foo-add-prefix`
 | |
|     - "traefik.http.middlewares.foo-add-prefix.addprefix.prefix=/foo"
 | |
|     # Apply the middleware named `foo-add-prefix` to the router named `router1`
 | |
|     - "traefik.http.routers.router1.middlewares=foo-add-prefix@docker"
 | |
| ```
 | |
| 
 | |
| ```yaml tab="IngressRoute"
 | |
| ---
 | |
| apiVersion: traefik.io/v1alpha1
 | |
| kind: Middleware
 | |
| metadata:
 | |
|   name: stripprefix
 | |
| spec:
 | |
|   stripPrefix:
 | |
|     prefixes:
 | |
|       - /stripit
 | |
| 
 | |
| ---
 | |
| apiVersion: traefik.io/v1alpha1
 | |
| kind: IngressRoute
 | |
| metadata:
 | |
|   name: ingressroute
 | |
| spec:
 | |
| # more fields...
 | |
|   routes:
 | |
|     # more fields...
 | |
|     middlewares:
 | |
|       - name: stripprefix
 | |
| ```
 | |
| 
 | |
| ```yaml tab="Consul Catalog"
 | |
| # Create a middleware named `foo-add-prefix`
 | |
| - "traefik.http.middlewares.foo-add-prefix.addprefix.prefix=/foo"
 | |
| # Apply the middleware named `foo-add-prefix` to the router named `router1`
 | |
| - "traefik.http.routers.router1.middlewares=foo-add-prefix@consulcatalog"
 | |
| ```
 | |
| 
 | |
| ```yaml tab="File (YAML)"
 | |
| # As YAML Configuration File
 | |
| http:
 | |
|   routers:
 | |
|     router1:
 | |
|       service: myService
 | |
|       middlewares:
 | |
|         - "foo-add-prefix"
 | |
|       rule: "Host(`example.com`)"
 | |
| 
 | |
|   middlewares:
 | |
|     foo-add-prefix:
 | |
|       addPrefix:
 | |
|         prefix: "/foo"
 | |
| 
 | |
|   services:
 | |
|     service1:
 | |
|       loadBalancer:
 | |
|         servers:
 | |
|           - url: "http://127.0.0.1:80"
 | |
| ```
 | |
| 
 | |
| ```toml tab="File (TOML)"
 | |
| # As TOML Configuration File
 | |
| [http.routers]
 | |
|   [http.routers.router1]
 | |
|     service = "myService"
 | |
|     middlewares = ["foo-add-prefix"]
 | |
|     rule = "Host(`example.com`)"
 | |
| 
 | |
| [http.middlewares]
 | |
|   [http.middlewares.foo-add-prefix.addPrefix]
 | |
|     prefix = "/foo"
 | |
| 
 | |
| [http.services]
 | |
|   [http.services.service1]
 | |
|     [http.services.service1.loadBalancer]
 | |
| 
 | |
|       [[http.services.service1.loadBalancer.servers]]
 | |
|         url = "http://127.0.0.1:80"
 | |
| ```
 | |
| 
 | |
| ## Available Middlewares
 | |
| 
 | |
| A list of HTTP middlewares can be found [here](http/overview.md).
 | |
| 
 | |
| A list of TCP middlewares can be found [here](tcp/overview.md).
 | |
| 
 | |
| {!traefik-for-business-applications.md!}
 |