Fabio技术手册(1):概述和快速上手
概述
Fabio是一個HTTP和TCP反向代理,它使用來自Consul的數據配置自己。
傳統的負載均衡器和反向代理需要配置文件進行配置。配置包含代理轉發到上游服務的主機名和路徑。這個過程可以通過像consul-template這樣的工具來自動化,這些工具可以生成配置文件并觸發重新加載。
Fabio的工作方式不同,因為它會在Consul存儲的數據發生更改時直接更新路由表,而無需重新啟動或重新加載。
當您在Consul注冊一個服務時,您需要添加的只是一個標記(tag),它會告知上游服務接受的路徑,例如urlprefix-/user或urlprefix-/order, fabio將完成剩下的工作。
維護人員
Fabio是由Frank Schr?der和偉大的社區開發和維護的。
它最初是在荷蘭阿姆斯特丹的eBay Classifieds集團開發的。
?
快速上手
從源代碼、二進制、Docker或Homebrew安裝
go get github.com/fabiolb/fabio (>= go1.8)brew install fabio (OSX/macOS stable)docker pull fabiolb/fabio (Docker)https://github.com/fabiolb/fabio/releases (pre-built binaries)在Consul注冊你的服務.
確保每個實例都使用唯一的ServiceID和沒有空格的服務名注冊。
按照這里的描述在Consul注冊健康檢查。
確保健康檢查是passing的,因為fabio將只監視通過了健康檢查的服務。
路由存儲在Consul的Service Tags中,您需要為服務所服務的每個host/path前綴添加一個單獨的urlprefix-標記。
例如,如果您的服務處理/user和/product,那么添加兩個標簽urlprefix-/user和urlprefix-/product。你可以注冊任意數量的前綴。
fabio可以轉發HTTP、HTTPS和TCP流量。下面是一些配置示例:
# HTTP/S examples # Make sure the prefix for HTTP routes contains at least one slash (/). urlprefix-/css # path route urlprefix-i.com/static # host specific path route urlprefix-mysite.com/ # host specific catch all route urlprefix-/foo/bar strip=/foo # path stripping (forward '/bar' to upstream) urlprefix-/foo/bar proto=https # HTTPS upstream urlprefix-/foo/bar proto=https tlsskipverify=true # HTTPS upstream and self-signed cert# TCP examples urlprefix-:3306 proto=tcp # route external port 3306?
啟動fabio不需要配置文件
$ fabio這假設已經有一個Consul代理正在localhost:8500上運行。
觀察日志輸出fabio如何選擇路由到您的服務。
注意:通過Docker運行fabio可以看這里。
嘗試啟動/停止服務,以查看路由表如何立即更新。
測試您是否可以通過fabio訪問上游服務
# for urlprefix-/foo curl -i http://localhost:9999/foo# for urlprefix-mysite.com/foo curl -i -H 'Host: mysite.com' http://localhost:9999/foo?
將所有HTTP流量發送到端口9999上的fabio
總結
以上是生活随笔為你收集整理的Fabio技术手册(1):概述和快速上手的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 漂在旧金山
- 下一篇: Fabio技术手册(2):部署