一款先進的反向代理軟體: traefik
traefik, 是一款比較先進的反向代理和負載均衡軟體, 它使部署微服務更加的容易。 traefik支援多種後端服務(Docker, Swarm, Kubernetes, Marathon, Mesos, Consul, Etcd, Zookeeper, BoltDB, Eureka, Rest API, file等等)自動的、動態的管理它的配置。
概覽
假設你部署了一組微服務, 你可能會用服務註冊中心(例如: consule或者etcd)或者服務排程(swarm, Mesos/Marathon)去管理這些服務。 如果你要讓使用者從外網訪問這些服務,就需要一個方向代理,以虛擬主機或者prefix paths的方式 對外提供服務, 例如:
- api.domain.com 提供api介面地址
- domain.com/web 提供web這樣一個服務
- backoffice.domain.com 提供backoffice服務, 用來負載多個後端應用
但是, 微服務的架構是動態的: 服務的增加、刪除、 升級等, 這些一天可能要發生好幾次。
傳統的方向代理相對的不那麼動態, 在微服務架構下很難去經常配置並熱重啟。
traefik可以監聽你的服務註冊中心或者排程中心的API,獲悉哪些服務被新增、刪除、修改等, 然後自動生成響應的配置檔案, 而且能比較快速的建立。
執行並忘記它的存在!
功能
- 快
- 無依賴,單個golang檔案
- Rest API
- 多後端支援: Docker, Swarm, Kubernetes, Marathon, Mesos, Consul, Etcd等
- 監聽後端, 如果有變化,動態生成配置
- Hot-reloading配置, 無需重啟
- Gracefull關閉http連線
- Rest Metrics
- 有小的docker image的形式
- SSL後端支援
- SSL前端支援(用SNI的方式)
- Angularjs ui
- Websocket支援
- HTTP/2支援
- 重試網路問題
- Let's Encrypt支援
- 支援叢集的高可用模式
快速開始
你可以在這篇文章中Katacoda tutorial 快速瀏覽traefik如何負載多個docker容器。
你也可以在這裡ContainerCamp UK找到Ed Robinson關於traefik的基礎特性和kubernetes上結合traefik的demo。
在這裡Devoxx France 2016可以找到Emile Vauge關於tracefik的一些特性和docker、mesos/marathon、Let's Encrypt結合的demo。
Web UI
使用
- 最簡單的方式是:從 release下載最新的二進位制版本, 用簡單的配置檔案執行
./traefik --configFile=traefik.toml
- Docker image的方式
docker run -d -p 8080:8080 -p 80:80 -v $PWD/traefik.toml:/etc/traefik/traefik.toml traefik
- 原始碼的方式
git clone https://github.com/containous/traefik
文件
相關文章
- 這裡有一款寶藏反向代理
- 教你如何利用.net core實現反向代理中介軟體的方法
- 四層反向代理和七層反向代理
- vue中proxyTable反向代理進行跨域Vue跨域
- nginx正向代理、反向代理Nginx
- 正向代理與反向代理
- 反向代理與正向代理
- 正向代理和反向代理
- 反向代理的有趣用法
- 正向代理和反向代理的形象理解
- nginx 反向代理Nginx
- Nginx反向代理Nginx
- 反向代理是如何工作的?
- Nginx 配置:反向代理Nginx
- Nginx 配置反向代理Nginx
- 反向代理和正向代理區別
- Nginx之路--配置正向代理、反向代理Nginx
- 正向代理與反向代理總結
- 圖解正向代理與反向代理圖解
- Nginx正向代理和反向代理配置Nginx
- 反向代理學習筆記(一) Nginx與反向代理緒論筆記Nginx
- 圖解正向代理、反向代理、透明代理圖解
- 正向代理和反向代理的本質區別
- 反向代理的實際應用
- yapi 的 nginx 反向代理配置文字APINginx
- 什麼是正向代理和反向代理?
- 反向代理與正向代理差異分析
- 寶塔反向代理配置
- Nginx四層反向代理Nginx
- tomcat 配置nginx 反向代理TomcatNginx
- nginx 反向代理 swoole 使用Nginx
- history 模式反向代理配置模式
- 如果Node.js已具備反向代理的功能,我為什麼要使用反向代理?Node.js
- 反向代理的安全性高嗎?
- 反向代理的本質是什麼?
- 淺析反向代理的原理與作用
- Nginx(五):http反向代理的實現NginxHTTP
- nginx的反向代理proxy_pass指令Nginx
- 圖文總結:正向代理與反向代理