traefik/docs/content/getting-started/concepts.md

61 lines
3.3 KiB
Markdown
Raw Normal View History

---
2023-04-05 12:44:06 +00:00
title: Concepts
description: Traefik - base concepts and main features
---
# Concepts
2023-04-05 12:44:06 +00:00
This page explains the base concepts of Traefik.
---
## Introduction
2023-06-19 12:36:05 +00:00
Traefik is based on the concept of EntryPoints, Routers, Middlewares and Services.
2023-04-05 12:44:06 +00:00
The main features include dynamic configuration, automatic service discovery, and support for multiple backends and protocols.
1. [EntryPoints](../routing/entrypoints.md "Link to docs about EntryPoints"): EntryPoints are the network entry points into Traefik. They define the port which will receive the packets, and whether to listen for TCP or UDP.
2. [Routers](../routing/routers/index.md "Link to docs about routers"): A router is in charge of connecting incoming requests to the services that can handle them.
3. [Middlewares](../middlewares/overview.md "Link to docs about middlewares"): Attached to the routers, middlewares can modify the requests or responses before they are sent to your service
4. [Services](../routing/services/index.md "Link to docs about services"): Services are responsible for configuring how to reach the actual services that will eventually handle the incoming requests.
## Edge Router
2023-04-05 12:44:06 +00:00
Traefik is an *Edge Router*, it means that it's the door to your platform, and that it intercepts and routes every incoming request:
it knows all the logic and every [rule](../routing/routers/index.md#rule "Link to docs about routing rules") that determine which services handle which requests (based on the *path*, the *host*, *headers*, etc.).
2023-04-05 12:44:06 +00:00
![The Door to Your Infrastructure](../assets/img/traefik-concepts-1.png "Picture explaining the infrastructure")
## Auto Service Discovery
Where traditionally edge routers (or reverse proxies) need a configuration file that contains every possible route to your services, Traefik gets them from the services themselves.
2019-05-17 11:32:05 +00:00
Deploying your services, you attach information that tells Traefik the characteristics of the requests the services can handle.
2023-04-05 12:44:06 +00:00
![Decentralized Configuration](../assets/img/traefik-concepts-2.png "Picture about Decentralized Configuration")
It means that when a service is deployed, Traefik detects it immediately and updates the routing rules in real time.
2022-03-15 14:38:08 +00:00
Similarly, when a service is removed from the infrastructure, the corresponding route is deleted accordingly.
You no longer need to create and synchronize configuration files cluttered with IP addresses or other rules.
2019-09-23 12:32:04 +00:00
!!! info "Many different rules"
2023-04-05 12:44:06 +00:00
In the example above, we used the request [path rule](../routing/routers/index.md#rule "Link to docs about routing rules") to determine which service was in charge.
Certainly, you can use many other different [rules](../routing/routers/index.md#rule "Link to docs about routing rules").
2019-09-23 12:32:04 +00:00
!!! info "Updating the requests"
2023-04-05 12:44:06 +00:00
In the [middleware](../middlewares/overview.md "Link to middleware documentation") section, you can learn about how to update the requests before forwarding them to the services.
!!! question "How does Traefik discover the services?"
2023-04-05 12:44:06 +00:00
Traefik is able to use your cluster API to discover the services and read the attached information.
In Traefik, these connectors are called [providers](../providers/overview.md "Link to overview about Traefik providers") because they *provide* the configuration to Traefik.
2022-09-09 15:17:53 +00:00
{!traefik-for-business-applications.md!}