Merge pull request #2526 from mmatur/feat/update-traefik-readme

Update traefik readme
This commit is contained in:
Tianon Gravi 2025-01-13 12:36:19 -08:00 committed by GitHub
commit 05f660894e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 78 additions and 74 deletions

View File

@ -1,14 +1,14 @@
%%LOGO%% %%LOGO%%
[Traefik](https://traefik.io) is a modern HTTP reverse proxy and load balancer that makes deploying microservices easy. [Traefik](https://traefik.io) is a modern HTTP reverse proxy and ingress controller that makes deploying microservices easy.
Traefik integrates with your existing infrastructure components ([Docker](https://www.docker.com/), [Swarm mode](https://docs.docker.com/engine/swarm/), [Kubernetes](https://kubernetes.io), [Marathon](https://mesosphere.github.io/marathon/), [Consul](https://www.consul.io/), [Etcd](https://coreos.com/etcd/), [Rancher](https://rancher.com), [Amazon ECS](https://aws.amazon.com/ecs), ...) and configures itself automatically and dynamically. Traefik integrates with your existing infrastructure components ([Kubernetes](https://kubernetes.io), [Docker](https://www.docker.com/), [Swarm](https://docs.docker.com/engine/swarm/), [Consul](https://www.consul.io/), [Nomad](https://www.nomadproject.io/), [etcd](https://coreos.com/etcd/), [Amazon ECS](https://aws.amazon.com/ecs), ...) and configures itself automatically and dynamically.
Pointing Traefik at your orchestrator should be the *only* configuration step you need. Pointing Traefik at your orchestrator should be the *only* configuration step you need.
# Traefik v2 - Example usage ## Traefik v3 - Example usage
Enable `docker` provider and web UI: Enable `docker` provider and dashboard UI:
```yml ```yml
## traefik.yml ## traefik.yml
@ -23,25 +23,84 @@ api:
insecure: true insecure: true
``` ```
Start Traefik: Start Traefik v3:
```bash ```sh
docker run -d -p 8080:8080 -p 80:80 \ docker run -d -p 8080:8080 -p 80:80 \
-v $PWD/traefik.yml:/etc/traefik/traefik.yml \ -v $PWD/traefik.yml:/etc/traefik/traefik.yml \
-v /var/run/docker.sock:/var/run/docker.sock \ -v /var/run/docker.sock:/var/run/docker.sock \
traefik:v2.5 traefik:v3
``` ```
Start a backend server, named `test`: Start a backend server using the `traefik/whoami` image:
```bash ```sh
docker run -d --name test traefik/whoami docker run -d --name test traefik/whoami
``` ```
And finally, you can access to your `whoami` server throught Traefik, on the domain name `test.docker.localhost`: Access the whoami service through Traefik via the defined rule `test.docker.localhost`:
```console
$ curl test.docker.localhost
Hostname: 0693100b16de
IP: 127.0.0.1
IP: ::1
IP: 192.168.215.4
RemoteAddr: 192.168.215.3:57618
GET / HTTP/1.1
Host: test.docker.localhost
User-Agent: curl/8.7.1
Accept: */*
Accept-Encoding: gzip
X-Forwarded-For: 192.168.215.1
X-Forwarded-Host: test.docker.localhost
X-Forwarded-Port: 80
X-Forwarded-Proto: http
X-Forwarded-Server: 8a37fd4f35fb
X-Real-Ip: 192.168.215.1
```
Access the Traefik Dashboard:
Open your web browser and navigate to `http://localhost:8080` to access the Traefik dashboard. This will provide an overview of routers, services, and middlewares.
![Dashboard UI](https://raw.githubusercontent.com/traefik/traefik/v3.2/docs/content/assets/img/webui-dashboard.png)
## Traefik v2 - Example usage
Enable `docker` provider and dashboard UI:
```yml
## traefik.yml
# Docker configuration backend
providers:
docker:
defaultRule: "Host(`{{ trimPrefix `/` .Name }}.docker.localhost`)"
# API and dashboard configuration
api:
insecure: true
```
Start Traefik v2:
```sh
docker run -d -p 8080:8080 -p 80:80 \
-v $PWD/traefik.yml:/etc/traefik/traefik.yml \
-v /var/run/docker.sock:/var/run/docker.sock \
traefik:v2.11
```
Start a backend server using the `traefik/whoami` image:
```sh
docker run -d --name test traefik/whoami
```
Access the whoami service through Traefik via the defined rule `test.docker.localhost`:
```console ```console
# $ curl --header 'Host:test.docker.localhost' 'http://localhost:80/'
$ curl test.docker.localhost $ curl test.docker.localhost
Hostname: 390a880bdfab Hostname: 390a880bdfab
IP: 127.0.0.1 IP: 127.0.0.1
@ -59,72 +118,17 @@ X-Forwarded-Server: 7e073cb54211
X-Real-Ip: 172.17.0.1 X-Real-Ip: 172.17.0.1
``` ```
The web UI [http://localhost:8080](http://localhost:8080) will give you an overview of the routers, services, and middlewares. Access the Traefik Dashboard:
![Web UI](https://raw.githubusercontent.com/traefik/traefik/v2.5/docs/content/assets/img/webui-dashboard.png) Open your web browser and navigate to `http://localhost:8080` to access the Traefik dashboard. This will provide an overview of routers, services, and middlewares.
# Traefik v1 - Example usage ![Dashboard UI](https://raw.githubusercontent.com/traefik/traefik/v2.0/docs/content/assets/img/webui-dashboard.png)
Grab a [sample configuration file](https://raw.githubusercontent.com/traefik/traefik/v1.7/traefik.sample.toml) and rename it to `traefik.toml`. Enable `docker` provider and web UI: ## Documentation
```toml
## traefik.toml
# API and dashboard configuration
[api]
# Docker configuration backend
[docker]
domain = "docker.localhost"
```
Start Traefik:
```bash
docker run -d -p 8080:8080 -p 80:80 \
-v $PWD/traefik.toml:/etc/traefik/traefik.toml \
-v /var/run/docker.sock:/var/run/docker.sock \
traefik:v1.7
```
Start a backend server, named `test`:
```bash
docker run -d --name test traefik/whoami
```
And finally, you can access to your `whoami` server throught Traefik, on the domain name `{containerName}.{configuredDomain}` (`test.docker.localhost`):
```console
# $ curl --header 'Host:test.docker.localhost' 'http://localhost:80/'
$ curl 'http://test.docker.localhost'
Hostname: 117c5530934d
IP: 127.0.0.1
IP: ::1
IP: 172.17.0.3
IP: fe80::42:acff:fe11:3
GET / HTTP/1.1
Host: test.docker.localhost
User-Agent: curl/7.35.0
Accept: */*
Accept-Encoding: gzip
X-Forwarded-For: 172.17.0.1
X-Forwarded-Host: 172.17.0.3:80
X-Forwarded-Proto: http
X-Forwarded-Server: f2e05c433120
```
The web UI [http://localhost:8080](http://localhost:8080) will give you an overview of the frontends/backends and also a health dashboard.
![Web UI Providers](https://raw.githubusercontent.com/traefik/traefik/v1.7/docs/img/web.frontend.png)
# Documentation
You can find the complete documentation: You can find the complete documentation:
- for [v2.x](https://doc.traefik.io/traefik/) - for [v3.x](https://doc.traefik.io/traefik/)
- for [v1.7](https://doc.traefik.io/traefik/v1.7) - for [v2.11](https://doc.traefik.io/traefik/v2.11)
A community support is available at [https://community.traefik.io](https://community.traefik.io) A community support is available at [https://community.traefik.io](https://community.traefik.io)
A collection of contributions around Traefik can be found at [https://awesome.traefik.io](https://awesome.traefik.io).