Treafik Information Doc
This commit is contained in:
83
Web Servers & Reverse Proxies/Traefik/1-Information.md
Normal file
83
Web Servers & Reverse Proxies/Traefik/1-Information.md
Normal file
@@ -0,0 +1,83 @@
|
|||||||
|
# 🚦 **Traefik Overview**
|
||||||
|
|
||||||
|
**Traefik** is a **modern reverse proxy** and load balancer that makes deploying, securing, and managing microservices easier.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔄 **Core Concepts**
|
||||||
|
|
||||||
|
### 1️⃣ **Entrypoint** 🛬
|
||||||
|
|
||||||
|
* The starting point for **incoming requests**.
|
||||||
|
* Example: `:80` for HTTP or `:443` for HTTPS.
|
||||||
|
|
||||||
|
### 2️⃣ **Router** 🚏
|
||||||
|
|
||||||
|
* Decides **where a request should go** based on rules.
|
||||||
|
* Connects **entrypoints** to **services**.
|
||||||
|
|
||||||
|
### 3️⃣ **Service** 🛠️
|
||||||
|
|
||||||
|
* The actual application or backend that processes the request.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🧩 **Routers Details**
|
||||||
|
|
||||||
|
**Routers** can have:
|
||||||
|
|
||||||
|
1. **Middleware** 🧱
|
||||||
|
|
||||||
|
* Modify requests/responses before reaching the service.
|
||||||
|
* Examples:
|
||||||
|
|
||||||
|
* `StripPrefix` ➡️ Remove part of the URL path.
|
||||||
|
* `RateLimit` ➡️ Limit request rate.
|
||||||
|
* `Auth` ➡️ Add authentication.
|
||||||
|
|
||||||
|
2. **Rules** 📜
|
||||||
|
|
||||||
|
* Define **how to match a request**.
|
||||||
|
* Examples:
|
||||||
|
|
||||||
|
* `Host("example.com")`
|
||||||
|
* `PathPrefix("/api")`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ⚙️ **Traefik Configuration Types**
|
||||||
|
|
||||||
|
1. **Static Configuration** 🗂️
|
||||||
|
|
||||||
|
* Defines **Traefik’s own behavior**.
|
||||||
|
* Example: entrypoints, providers, log level.
|
||||||
|
* Set in `traefik.yml` or CLI args.
|
||||||
|
|
||||||
|
2. **Dynamic Configuration** 📡
|
||||||
|
|
||||||
|
* Defines **how Traefik routes requests**.
|
||||||
|
* Example: routers, services, middlewares.
|
||||||
|
* Comes from files, Kubernetes CRDs, or Docker labels.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔗 **Request Flow**
|
||||||
|
|
||||||
|
```
|
||||||
|
Request
|
||||||
|
⬇️
|
||||||
|
Entrypoint 🛬
|
||||||
|
⬇️
|
||||||
|
Router 🚏
|
||||||
|
⬇️
|
||||||
|
Middleware 1 🧱 → Middleware 2 🧱
|
||||||
|
⬇️
|
||||||
|
Service 🛠️
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🌟 **Summary**
|
||||||
|
|
||||||
|
Traefik acts like a **smart traffic cop** 🚓 for your microservices, ensuring that requests go exactly where they should, with the right rules and transformations applied along the way.
|
||||||
|
|
||||||
Reference in New Issue
Block a user