README
This commit is contained in:
parent
07b520fe23
commit
f0985c1514
1 changed files with 100 additions and 0 deletions
100
README.md
Normal file
100
README.md
Normal file
|
@ -0,0 +1,100 @@
|
||||||
|
# /Træfɪk/
|
||||||
|
|
||||||
|
/Træfɪk/ is a modern HTTP reverse proxy and load balancer made to deploy microservices with ease.
|
||||||
|
It supports several backends (Docker, Mesos/Marathon, Consul, Etcd, Rest API, file...) to manage its configuration automatically and dynamically (hot-reload).
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
* No dependency hell, single binary made with go
|
||||||
|
* Simple json Rest API
|
||||||
|
* Simple TOML file configuration
|
||||||
|
* Multiple backends supported: Docker, Mesos/Marathon, Consul, Etcd, and more to come
|
||||||
|
* Watchers for backends, can listen change in backends to apply a new configuration automatically
|
||||||
|
* Hot-reloading of configuration. No need to restart the process
|
||||||
|
* Graceful shutdown http connections during hot-reloads
|
||||||
|
* Rest Metrics
|
||||||
|
* Tiny docker image included
|
||||||
|
* SSL backends support
|
||||||
|
* SSL frontend support
|
||||||
|
|
||||||
|
## Plumbing
|
||||||
|
|
||||||
|
* [Oxy](github.com/mailgun/oxy/): an awsome proxy librarymade by Mailgun guys
|
||||||
|
* [Gorilla mux](github.com/gorilla/mux): famous request router
|
||||||
|
* [Negroni](github.com/codegangsta/negroni): web middlewares made simple
|
||||||
|
* [Graceful](github.com/tylerb/graceful): graceful shutdown of http.Handler servers
|
||||||
|
|
||||||
|
## Quick start
|
||||||
|
|
||||||
|
* The simple way: go to the [releases](https://github.com/emilevauge/traefik/releases) page and get a binary.
|
||||||
|
* Or simply execute:
|
||||||
|
|
||||||
|
```
|
||||||
|
go get github.com/emilevauge/traefik
|
||||||
|
```
|
||||||
|
* Just run it!
|
||||||
|
|
||||||
|
```
|
||||||
|
./traefik traefik.toml
|
||||||
|
```
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
|
||||||
|
Here is a sample configuration TOML file:
|
||||||
|
|
||||||
|
```toml
|
||||||
|
port = ":80"
|
||||||
|
graceTimeOut = 10
|
||||||
|
traefikLogsFile = "log/traefik.log"
|
||||||
|
traefikLogsStdout = true
|
||||||
|
accessLogsFile = "log/access.log"
|
||||||
|
logLevel = "DEBUG"
|
||||||
|
# CertFile = "traefik.crt"
|
||||||
|
# KeyFile = "traefik.key"
|
||||||
|
|
||||||
|
[docker]
|
||||||
|
endpoint = "unix:///var/run/docker.sock"
|
||||||
|
watch = true
|
||||||
|
domain = "localhost"
|
||||||
|
# filename = "docker.tmpl"
|
||||||
|
|
||||||
|
# [marathon]
|
||||||
|
# endpoint = "http://127.0.0.1:8080"
|
||||||
|
# networkInterface = "eth0"
|
||||||
|
# watch = true
|
||||||
|
# domain = "localhost"
|
||||||
|
# filename = "marathon.tmpl"
|
||||||
|
|
||||||
|
[web]
|
||||||
|
address = ":8080"
|
||||||
|
|
||||||
|
# [file]
|
||||||
|
# filename = "rules.toml"
|
||||||
|
# watch = true
|
||||||
|
|
||||||
|
[backends]
|
||||||
|
[backends.backend1]
|
||||||
|
[backends.backend1.servers.server1]
|
||||||
|
url = "http://172.17.0.2:80"
|
||||||
|
weight = 10
|
||||||
|
[backends.backend1.servers.server2]
|
||||||
|
url = "http://172.17.0.3:80"
|
||||||
|
weight = 1
|
||||||
|
[backends.backend2]
|
||||||
|
[backends.backend2.servers.server1]
|
||||||
|
url = "http://172.17.0.4:80"
|
||||||
|
weight = 1
|
||||||
|
|
||||||
|
[routes]
|
||||||
|
[routes.route1]
|
||||||
|
backend = "backend2"
|
||||||
|
[routes.route1.rules.test1]
|
||||||
|
category = "Host"
|
||||||
|
value = "test.localhost"
|
||||||
|
[routes.route2]
|
||||||
|
backend = "backend1"
|
||||||
|
[routes.route2.rules.test2]
|
||||||
|
category = "Path"
|
||||||
|
value = "/test"
|
||||||
|
|
||||||
|
```
|
Loading…
Reference in a new issue