Fabio技术手册(2):部署
fabio的主要用例是將來(lái)自internet的HTTP(S)和TCP請(qǐng)求分發(fā)給前端(FE)服務(wù),后者可以處理這些請(qǐng)求。在這個(gè)場(chǎng)景中,前端提供服務(wù)然后使用Consul中的服務(wù)發(fā)現(xiàn)特性來(lái)查找它們需要的后端(BE)服務(wù),以便為請(qǐng)求提供服務(wù)。
這意味著fabio目前沒(méi)有用作FE-BE或BE-BE路由器來(lái)在服務(wù)之間路由通信,因?yàn)镃onsul的服務(wù)發(fā)現(xiàn)已經(jīng)解決了這個(gè)問(wèn)題。話雖如此,沒(méi)有什么能阻止fabio被這樣使用。這只是意味著我們沒(méi)有這樣做。
直接部署
在下面的設(shè)置中,fabio被配置為監(jiān)聽(tīng)公共ip,可以選擇終止一個(gè)或多個(gè)域(每個(gè)域一個(gè)ip)的SSL通信。
+--> service-a| internet -- HTTP/HTTPS --> fabio -- HTTP --+--> service-b|+--> service-c為了擴(kuò)展fabio,您可以將其與前端服務(wù)一起部署,前端服務(wù)提供高可用性并分配網(wǎng)絡(luò)帶寬。
+- HTTP/HTTPS -> fabio -+- HTTP -> service-a (host-a)| | internet --+- HTTP/HTTPS -> fabio -+- HTTP -> service-b (host-b)| |+- HTTP/HTTPS -> fabio -+- HTTP -> service-c (host-c)在已有的網(wǎng)關(guān)后
在下面的設(shè)置中,fabio被配置為接收來(lái)自現(xiàn)有網(wǎng)關(guān)的所有傳入流量,該網(wǎng)關(guān)也終止了一個(gè)或多個(gè)域的SSL。
+--> service-a| internet -- HTTP/HTTPS --> LB -- HTTP --> fabio -- HTTP --+--> service-b|+--> service-c同樣,為了擴(kuò)展fabio,您可以將其與前端服務(wù)一起部署,前端服務(wù)提供高可用性并分配網(wǎng)絡(luò)帶寬
+- HTTP -> fabio -+-> service-a (host-a)| | internet -- HTTP/HTTPS --> LB -+- HTTP -> fabio -+-> service-b (host-b)| |+- HTTP -> fabio -+-> service-c (host-c)Amazon ELB
您可以在Amazon ELB后面部署fabio,并啟用代理協(xié)議支持來(lái)獲取客戶端的遠(yuǎn)程地址和端口。
+- HTTP w/PROXY proto -> fabio -+-> service-a (host-a)| | internet -- HTTP/HTTPS --> ELB -+- HTTP w/PROXY proto -> fabio -+-> service-b (host-b)| |+- HTTP w/PROXY proto -> fabio -+-> service-c (host-c)Amazon API 網(wǎng)關(guān)
您可以將fabio部署為Amazon API網(wǎng)關(guān)的目標(biāo)。
internet -- HTTP/HTTPS --> API GW -+- HTTP -> fabio -+-> service-b (host-b)或支持代理協(xié)議的ELB:
+- HTTP w/PROXY -> fabio -+-> service-a (host-a)| | internet -- HTTP/HTTPS --> API GW --> ELB -+- HTTP w/PROXY -> fabio -+-> service-b (host-b)| |+- HTTP w/PROXY -> fabio -+-> service-c (host-c)您可以使用客戶端證書(shū)對(duì)API網(wǎng)關(guān)的調(diào)用進(jìn)行身份驗(yàn)證。這要求您在fabio上配置一個(gè)使用有效證書(shū)的HTTPS監(jiān)聽(tīng)器。
internet -- HTTPS --> API GW -+- HTTPS w/client cert -> fabio -+-> service為了使fabio能夠驗(yàn)證Amazon生成的證書(shū),您需要配置aws.apigw.cert.cn,如下所示:
proxy.addr = 1.2.3.4:9999;your/cert.pem;your/key.pem;api-gw-cert.pem aws.apigw.cert.cn = ApiGatewayapi-gw-cert.pem是在AWS管理控制臺(tái)生成的證書(shū)。您的/cert.pem和/key.pemis是HTTPS證書(shū)的證書(shū)/密鑰對(duì)。由于Amazon API網(wǎng)關(guān)證書(shū)沒(méi)有設(shè)置CA標(biāo)志,fabio需要信任它們以便客戶端證書(shū)身份驗(yàn)證工作。否則,您將得到一個(gè)TLS握手錯(cuò)誤:驗(yàn)證客戶端證書(shū)失敗。
注意:在1.2版和以后的支持動(dòng)態(tài)證書(shū)存儲(chǔ)的版本中,不會(huì)支持aws.apigw.cert.cn參數(shù)。您將不得不將caupgcn=ApiGateway參數(shù)添加到證書(shū)源配置中。有關(guān)詳細(xì)信息,請(qǐng)參閱證書(shū)存儲(chǔ)。
總結(jié)
以上是生活随笔為你收集整理的Fabio技术手册(2):部署的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Fabio技术手册(1):概述和快速上手
- 下一篇: MySQL 优化原理(一)