diff --git a/traefik/content.md b/traefik/content.md index e2abe2f9f..a93f14713 100644 --- a/traefik/content.md +++ b/traefik/content.md @@ -1,26 +1,81 @@ %%LOGO%% -[Traefik](https://github.com/containous/traefik) 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 load balancer 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. -Telling Traefik where your orchestrator is could be the *only* configuration step you need to do. +Pointing Traefik at your orchestrator should be the *only* configuration step you need. -# Example usage +# Traefik v2 - Example usage -Grab a [sample configuration file](https://raw.githubusercontent.com/containous/traefik/master/traefik.sample.toml) and rename it to `traefik.toml`. Enable `docker` provider and web UI: +Enable `docker` provider and web UI: + +```yml +## traefik.yml + +# Docker configuration backend +providers: + docker: + defaultRule: "Host(`{{ trimPrefix `/` .Name }}.docker.localhost`)" + +# API and dashboard configuration +api: + insecure: true +``` + +Start Traefik: + +```bash +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.0 +``` + +Start a backend server, named `test`: + +```bash +docker run -d --name test containous/whoami +``` + +And finally, you can access to your `whoami` server throught Traefik, on the domain name `test.docker.localhost`: + +```console +# $ curl --header 'Host:test.docker.localhost' 'http://localhost:80/' +$ curl test.docker.localhost +Hostname: 390a880bdfab +IP: 127.0.0.1 +IP: 172.17.0.3 +GET / HTTP/1.1 +Host: test.docker.localhost +User-Agent: curl/7.65.3 +Accept: */* +Accept-Encoding: gzip +X-Forwarded-For: 172.17.0.1 +X-Forwarded-Host: test.docker.localhost +X-Forwarded-Port: 80 +X-Forwarded-Proto: http +X-Forwarded-Server: 7e073cb54211 +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. + +![Web UI](https://raw.githubusercontent.com/containous/traefik/v2.0/docs/content/assets/img/webui-dashboard.png) + +# Traefik v1 - Example usage + +Grab a [sample configuration file](https://raw.githubusercontent.com/containous/traefik/v1.7/traefik.sample.toml) and rename it to `traefik.toml`. Enable `docker` provider and web UI: ```toml -################################################################ +## traefik.toml + # API and dashboard configuration -################################################################ [api] -################################################################ + # Docker configuration backend -################################################################ [docker] -domain = "docker.local" -watch = true + domain = "docker.localhost" ``` Start Traefik: @@ -29,26 +84,27 @@ Start Traefik: 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 +traefik:v1.7 ``` Start a backend server, named `test`: ```bash -docker run -d --name test emilevauge/whoami +docker run -d --name test containous/whoami ``` -And finally, you can access to your `whoami` server throught Traefik, on the domain name `{containerName}.{configuredDomain}`: +And finally, you can access to your `whoami` server throught Traefik, on the domain name `{containerName}.{configuredDomain}` (`test.docker.localhost`): -```bash -curl --header 'Host: test.docker.local' 'http://localhost:80/' +```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: 172.17.0.3:80 +Host: test.docker.localhost User-Agent: curl/7.35.0 Accept: */* Accept-Encoding: gzip @@ -56,15 +112,19 @@ 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/containous/traefik/master/docs/img/web.frontend.png) +![Web UI Providers](https://raw.githubusercontent.com/containous/traefik/v1.7/docs/img/web.frontend.png) # Documentation -You can find the complete documentation at [https://docs.traefik.io](https://docs.traefik.io). +You can find the complete documentation: + +- for [v1.7](https://docs.traefik.io/v1.7) +- for [v2.0](https://docs.traefik.io/v2.0) + +A community support is available at [https://community.containo.us](https://community.containo.us) A collection of contributions around Traefik can be found at [https://awesome.traefik.io](https://awesome.traefik.io).