日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁(yè) > 科技  > 軟件

能更好集成容器的反向代理工具Traefik的簡(jiǎn)單使用

來(lái)源: 責(zé)編: 時(shí)間:2024-04-02 17:22:37 221觀看
導(dǎo)讀需求WebAPI 接口中有兩大類業(yè)務(wù),當(dāng)然根據(jù)具體情況可以是若干類。例如:workflow 和 interface,分別代表流程平臺(tái)和接口平臺(tái)。在集群部署模式下,可以根據(jù)不同的路由分配到不同的節(jié)點(diǎn)。例如:一共部署了 10 個(gè)節(jié)點(diǎn),workflow 分

GeZ28資訊網(wǎng)——每日最新資訊28at.com

需求

WebAPI 接口中有兩大類業(yè)務(wù),當(dāng)然根據(jù)具體情況可以是若干類。例如:workflow 和 interface,分別代表流程平臺(tái)和接口平臺(tái)。GeZ28資訊網(wǎng)——每日最新資訊28at.com

在集群部署模式下,可以根據(jù)不同的路由分配到不同的節(jié)點(diǎn)。例如:一共部署了 10 個(gè)節(jié)點(diǎn),workflow 分布式到其中的 3 個(gè)節(jié)點(diǎn),interface 分布式到其余的 7 個(gè)節(jié)點(diǎn)。GeZ28資訊網(wǎng)——每日最新資訊28at.com

這種方式的好處就是對(duì)于只有單一技術(shù)棧的團(tuán)隊(duì),在物理上可以將代碼組織在一起,方便維護(hù),但在邏輯上可以將不同的業(yè)務(wù)分開,實(shí)現(xiàn)動(dòng)態(tài)擴(kuò)展和彈性。GeZ28資訊網(wǎng)——每日最新資訊28at.com

當(dāng)然上面的需求使用 nginx 也可以很容易做到,但本文采用的是 Tr?f?k ,先來(lái)看看 Tr?f?k 和 nginx 的區(qū)別。GeZ28資訊網(wǎng)——每日最新資訊28at.com

Traefik 和 Nginx 的區(qū)別

Traefik 和 Nginx 都是反向代理工具,但它們?cè)谠O(shè)計(jì)和使用場(chǎng)景上存在一些區(qū)別。下面簡(jiǎn)要比較一下這兩者:GeZ28資訊網(wǎng)——每日最新資訊28at.com

  • Traefik 可以無(wú)須重啟即可更新配置,Nginx 據(jù)說(shuō)能做到(沒有驗(yàn)證過(guò))。
  • Traefik 可以自動(dòng)的服務(wù)發(fā)現(xiàn)與負(fù)載均衡,Nginx 需要借助一些第三方工具。
  • Traefik 對(duì)  Docker、Kubernetes、Swarm 的支持更好。
  • Traefik 有漂亮的 dashboard 界面。
  • Traefik 在功能上沒有 Nginx 豐富,網(wǎng)上資料、案例也比 Nginx 少。
  • Traefik 性能比 Nginx 要差,但具體差別多大,還未驗(yàn)證。

環(huán)境

  • Traefik:v3.0.0-rc2
  • 操作系統(tǒng):macOS13.0
  • Docker:20.10.13

Traefik 簡(jiǎn)單示例

Traefik 使用 docker-compose 進(jìn)行部署,部署前先創(chuàng)建一個(gè) docker 網(wǎng)絡(luò):GeZ28資訊網(wǎng)——每日最新資訊28at.com

docker network create traefik-net

創(chuàng)建一個(gè) traefik-demo 的目錄,目錄中創(chuàng)建 docker-compose.yml 文件,用來(lái)構(gòu)建一個(gè) Traefik 容器。GeZ28資訊網(wǎng)——每日最新資訊28at.com

version: "3"services:  traefik:    image: traefik:v3.0.0-rc2    restart: always    ports:      - 80:80    volumes:      - /var/run/docker.sock:/var/run/docker.sock    command:       - "--api=true"      - "--api.dashboard=true"      - "--api.insecure=true"      - "--entrypoints.http.address=:80"      - "--providers.docker=true"    labels:      - "traefik.http.routers.traefik-dashboard.entrypoints=http"      - "traefik.http.routers.traefik-dashboard.rule=Host(`traefik.fw.com`)"      - "traefik.http.routers.traefik-dashboard.service=dashboard@internal"      - "traefik.http.routers.traefik-dashboard-api.entrypoints=http"      - "traefik.http.routers.traefik-dashboard-api.rule=Host(`traefik.fw.com`) && PathPrefix(`/api`)"      - "traefik.http.routers.traefik-dashboard-api.service=api@internal"    networks:      - traefik-net      networks:  traefik-net:    external: true    name: traefik-net
  • /var/run/docker.sock:/var/run/docker.sock:允許 Traefik 訪問 Docker 守護(hù)進(jìn)程,用于自動(dòng)發(fā)現(xiàn) Docker 服務(wù),允許 Traefik 訂閱 Docker 服務(wù)事件,來(lái)動(dòng)態(tài)的添加或刪除要對(duì)用戶暴露的網(wǎng)絡(luò)服務(wù)。
  • --api=true:?jiǎn)⒂?Traefik API。
  • --api.dashboard=true:?jiǎn)⒂?Traefik 的 Web UI。
  • --api.insecure=true:允許不安全的 API 和 Web UI 訪問。
  • --entrypoints.http.address=:80:設(shè)置 HTTP 入口點(diǎn)在容器的 80 端口。
  • --providers.docker=true:?jiǎn)⒂?Docker 作為服務(wù)提供者。

通過(guò)在 Docker Labels 中添加了聲明式的路由,分別將 Dashboard 的網(wǎng)頁(yè)(路由名稱  traefik-dashboard )和 API (路由名稱 traefik-dashboard-api )注冊(cè)在了我們創(chuàng)建的 http 網(wǎng)絡(luò)入口上,用戶就可以通過(guò)我們?cè)O(shè)置的域名來(lái)訪問服務(wù)了。GeZ28資訊網(wǎng)——每日最新資訊28at.com

  • traefik.http.routers.traefik-dashboard.entrypoints=http: 為 Traefik dashboard 設(shè)置入口點(diǎn)。
  • traefik.http.routers.traefik-dashboard.rule=Host(traefik.fw.com):設(shè)置訪問 Traefik dashboard 的主機(jī)規(guī)則。
  • traefik.http.routers.traefik-dashboard.service=dashboard@internal:指定 Traefik dashboard 使用內(nèi)部服務(wù)。
  • traefik.http.routers.traefik-dashboard-api.entrypoints=http:為 Traefik API 設(shè)置入口點(diǎn)。
  • traefik.http.routers.traefik-dashboard-api.rule=Host(traefik.fw.com) && PathPrefix(/api):設(shè)置訪問 Traefik API 的主機(jī)和路徑前綴規(guī)則。
  • traefik.http.routers.traefik-dashboard-api.service=api@internal:指定 Traefik API 使用內(nèi)部服務(wù)。

上面的配置中有一個(gè)域名:traefik.fw.com ,這是我本地測(cè)試使用的域名,正式環(huán)境替換為真實(shí)域名即可。本地測(cè)試可以通過(guò)修改 hosts 文件的方式:GeZ28資訊網(wǎng)——每日最新資訊28at.com

cd /etc/sudo chmod 777 hostsvi hosts

添加映射:GeZ28資訊網(wǎng)——每日最新資訊28at.com

127.0.0.1 traefik.fw.com

在 traefik-demo 目中中執(zhí)行 docker-compose up -d traefik 來(lái)構(gòu)建 Traefik 服務(wù),執(zhí)行成功后,在瀏覽器中訪問:traefik.fw.com ,可以看到如下界面:GeZ28資訊網(wǎng)——每日最新資訊28at.com

GeZ28資訊網(wǎng)——每日最新資訊28at.com

可以看到 Services 有 10 個(gè),其中包含了我本機(jī)上部署的其他的 docker 容器。GeZ28資訊網(wǎng)——每日最新資訊28at.com

使用官方的測(cè)試容器來(lái)進(jìn)行測(cè)試,修改 docker-compose.yml 文件,在下面添加如下內(nèi)容:GeZ28資訊網(wǎng)——每日最新資訊28at.com

whoami:    image: containous/whoami        labels:      - "traefik.enable=true"      - "traefik.http.routers.whoami.rule=Host(`whoami.fw.com`)"      - "traefik.http.services.whoami.loadbalancer.server.port=80"    networks:      - traefik-net

執(zhí)行 docker-compose up -d whoami 進(jìn)行構(gòu)建,構(gòu)建成功后,命令行執(zhí)行:curl -H Host:whoami.fw.com http://127.0.0.1。GeZ28資訊網(wǎng)——每日最新資訊28at.com

GeZ28資訊網(wǎng)——每日最新資訊28at.com

現(xiàn)在使用命令:docker-compose up -d --scale whoami=2 對(duì) whoami 服務(wù)進(jìn)行擴(kuò)容,創(chuàng)建成功后,再使用:curl -H Host:whoami.fw.com http://127.0.0.1 進(jìn)行測(cè)試,會(huì)發(fā)現(xiàn)已經(jīng)在兩個(gè)容器間進(jìn)行負(fù)載了:GeZ28資訊網(wǎng)——每日最新資訊28at.com

GeZ28資訊網(wǎng)——每日最新資訊28at.com

使用 WebAPI 示例進(jìn)行驗(yàn)證

使用 C# 編寫 WebAPI 接口,創(chuàng)建兩個(gè) Controller 模擬兩個(gè)不同的業(yè)務(wù),InterfaceCenterController 和 WorkflowController ,代碼如下:GeZ28資訊網(wǎng)——每日最新資訊28at.com

[ApiController]    [Route("[controller]")]    public class WorkflowController : ControllerBase    {        [HttpGet()]        public string Test()        {            string ip = Request.HttpContext.Connection.LocalIpAddress.MapToIPv4().ToString() + ":" +                         Request.HttpContext.Connection.LocalPort.ToString();            return $"workflow server,{ip}";        }    }        [ApiController]    [Route("[controller]")]    public class InterfaceCenterController : ControllerBase    {        [HttpGet()]        public string Test()        {             string ip = Request.HttpContext.Connection.LocalIpAddress.MapToIPv4().ToString() + ":" +                      Request.HttpContext.Connection.LocalPort.ToString();            return $"interfaceCenter server,{ip}";        }    }

代碼寫好后,進(jìn)行發(fā)布,在發(fā)布目錄中創(chuàng)建 Dockerfile 文件,內(nèi)容如下:GeZ28資訊網(wǎng)——每日最新資訊28at.com

FROM mcr.microsoft.com/dotnet/core/aspnet:3.1COPY . /appWORKDIR /appEXPOSE 80/tcpENTRYPOINT ["dotnet", "ApiDemo.dll"]

執(zhí)行下面命令進(jìn)行鏡像構(gòu)建:GeZ28資訊網(wǎng)——每日最新資訊28at.com

docker build -t apidemo .

修改 traefik-demo 目錄中的 docker-compose.yml 文件,在下面添加如下內(nèi)容:GeZ28資訊網(wǎng)——每日最新資訊28at.com

apidemo:    image: apidemo     labels:      - "traefik.enable=true"      - "traefik.http.routers.apidemo.entrypoints=http"      - "traefik.http.routers.apidemo.rule=Host(`apidemo.fw.com`)  && PathPrefix(`/workflow`)"      - "traefik.http.services.apidemo.loadbalancer.server.port=80"    networks:      - traefik-net  apidemo-1:    image: apidemo     labels:      - "traefik.enable=true"      - "traefik.http.routers.apidemo-1.entrypoints=http"      - "traefik.http.routers.apidemo-1.rule=Host(`apidemo.fw.com`) && PathPrefix(`/interfacecenter`)"      - "traefik.http.services.apidemo-1.loadbalancer.server.port=80"    networks:      - traefik-net
  • 在 apidemo 中配置了路由 PathPrefix(/workflow) 表示只接受工作流平臺(tái)的業(yè)務(wù)。
  • 在 apidemo-1 中配置了路由 PathPrefix(/interfacecenter) 表示只接受接口平臺(tái)的業(yè)務(wù)。

在上面 labels 的路由配置中使用了 apidemo.fw.com 的域名,同樣,這個(gè)域名也需要配置到 hosts 文件中:GeZ28資訊網(wǎng)——每日最新資訊28at.com

127.0.0.1 traefik.fw.com apidemo.fw.com

執(zhí)行下面的命令進(jìn)行容器的構(gòu)建:GeZ28資訊網(wǎng)——每日最新資訊28at.com

docker-compose up -d apidemodocker-compose up -d apidemo-1

使用 Postman 進(jìn)行測(cè)試:GeZ28資訊網(wǎng)——每日最新資訊28at.com

GeZ28資訊網(wǎng)——每日最新資訊28at.com

GeZ28資訊網(wǎng)——每日最新資訊28at.com

  • 當(dāng)訪問 workflow 路由時(shí),返回的容器 IP 一直都是 172.18.0.2。
  • 當(dāng)訪問 interfacecenter 路由時(shí),返回的容器 IP 一直都是 172.18.0.4。

本文鏈接:http://m.www897cc.com/showinfo-26-80876-0.html能更好集成容器的反向代理工具Traefik的簡(jiǎn)單使用

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: Node.js 紀(jì)錄片都講了什么?我做了這些關(guān)鍵時(shí)間線的總結(jié)!

下一篇: .NET字符串內(nèi)存管理:常量字符串、動(dòng)態(tài)創(chuàng)建和字符串池的巧妙結(jié)合

標(biāo)簽:
  • 熱門焦點(diǎn)
  • 對(duì)標(biāo)蘋果的靈動(dòng)島 華為帶來(lái)實(shí)況窗功能

    繼蘋果的靈動(dòng)島之后,華為也在今天正式推出了“實(shí)況窗”功能。據(jù)今天鴻蒙OS 4.0的現(xiàn)場(chǎng)演示顯示,華為的實(shí)況窗可以更高效的展現(xiàn)出實(shí)時(shí)通知,比如鎖屏上就能看到外賣、打車、銀行
  • 太卷!Redmi MAX 100英寸電視便宜了:12999元買Redmi史上最大屏

    8月5日消息,從小米商城了解到,Redmi MAX 100英寸巨屏電視日前迎來(lái)官方優(yōu)惠,到手價(jià)12999元,比發(fā)布價(jià)便宜了7000元,在大屏電視市場(chǎng)開卷。據(jù)了解,Redmi MAX 100
  • JavaScript 混淆及反混淆代碼工具

    介紹在我們開始學(xué)習(xí)反混淆之前,我們首先要了解一下代碼混淆。如果不了解代碼是如何混淆的,我們可能無(wú)法成功對(duì)代碼進(jìn)行反混淆,尤其是使用自定義混淆器對(duì)其進(jìn)行混淆時(shí)。什么是混
  • 之家push系統(tǒng)迭代之路

    前言在這個(gè)信息爆炸的互聯(lián)網(wǎng)時(shí)代,能夠及時(shí)準(zhǔn)確獲取信息是當(dāng)今社會(huì)要解決的關(guān)鍵問題之一。隨著之家用戶體量和內(nèi)容規(guī)模的不斷增大,傳統(tǒng)的靠"主動(dòng)拉"獲取信息的方式已不能滿足用
  • 10天營(yíng)收超1億美元,《星鐵》比《原神》差在哪?

    來(lái)源:伯虎財(cái)經(jīng)作者:陳平安即便你沒玩過(guò)《原神》,你一定聽說(shuō)過(guò)的它的大名。恨它的人把《原神》開服那天稱作是中國(guó)游戲史上最黑暗的一天,有粉絲因?yàn)樗髂嵩赑S平臺(tái)上線《原神》,怒而
  • 騰訊VS網(wǎng)易,最卷游戲暑期檔,誰(shuí)能笑到最后?

    作者:無(wú)銹缽來(lái)源:財(cái)經(jīng)無(wú)忌7月16日晚,上海1862時(shí)尚藝術(shù)中心。伴隨著幻象的精準(zhǔn)命中,碩大的熒幕之上,比分被定格在了14:12,被寄予厚望的EDG戰(zhàn)隊(duì)以絕對(duì)的優(yōu)勢(shì)戰(zhàn)勝了BLG戰(zhàn)隊(duì),拿下了總決
  • 猿輔導(dǎo)與新東方的兩種“歸途”

    作者|卓心月 出品|零態(tài)LT(ID:LingTai_LT)如何成為一家偉大企業(yè)?答案一定是對(duì)“勢(shì)”的把握,這其中最關(guān)鍵的當(dāng)屬對(duì)企業(yè)戰(zhàn)略的制定,且能夠站在未來(lái)看現(xiàn)在,即使這其中的
  • Counterpoint :OPPO雙旗艦戰(zhàn)略全面落地 高端產(chǎn)品銷量增長(zhǎng)22%

    2023年6月30日,全球行業(yè)分析機(jī)構(gòu)Counterpoint Research發(fā)布的《中國(guó)智能手機(jī)高端市場(chǎng)白皮書》顯示,中國(guó)智能手機(jī)品牌正在尋求高質(zhì)量發(fā)展,中國(guó)高端智能
  • 北京:科技教育體驗(yàn)基地開始登記

      北京“科技館之城”科技教育體驗(yàn)基地登記和認(rèn)證工作日前啟動(dòng)。首批北京科技教育體驗(yàn)基地?cái)M于2023年全國(guó)科普日期間掛牌,后續(xù)還將開展常態(tài)化登記。  北京科技教育體驗(yàn)基
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
国产麻豆91精品| 久久久久亚洲综合| 亚洲六月丁香色婷婷综合久久| 亚洲国产另类久久精品| 日韩亚洲欧美一区二区三区| 亚洲一区成人| 久久美女性网| 欧美日韩日本网| 国产日韩欧美精品在线| 亚洲高清在线视频| 最新亚洲电影| 亚洲综合社区| 蜜臀va亚洲va欧美va天堂| 欧美日韩视频一区二区| 国产亚洲午夜| 亚洲美女在线看| 久久aⅴ乱码一区二区三区| 欧美激情亚洲视频| 国产亚洲激情视频在线| 亚洲毛片在线观看.| 久久国产精品99国产精| 欧美日韩免费| 在线成人av网站| 亚洲女同性videos| 欧美激情视频一区二区三区在线播放 | 国产欧美精品一区aⅴ影院| 亚洲国内欧美| 欧美在线播放| 欧美日韩激情网| 在线精品视频一区二区| 亚洲欧美韩国| 欧美日韩国产成人在线91| 黑人巨大精品欧美一区二区小视频 | 午夜久久久久久久久久一区二区| 老司机aⅴ在线精品导航| 国产精品国码视频| 最新中文字幕一区二区三区| 欧美伊人久久| 欧美日韩999| 在线不卡视频| 欧美在线观看视频| 欧美午夜免费影院| 亚洲精品一区二| 老司机久久99久久精品播放免费| 国产精品欧美日韩久久| 亚洲美女在线视频| 蜜乳av另类精品一区二区| 国产日韩成人精品| 亚洲尤物在线视频观看| 欧美日韩成人在线视频| 亚洲二区三区四区| 久久久人成影片一区二区三区观看| 国产精品久久久久高潮| 99在线观看免费视频精品观看| 老司机免费视频一区二区三区| 国产日韩精品一区观看| 亚洲综合国产激情另类一区| 欧美日韩一区二区在线播放| 最近中文字幕mv在线一区二区三区四区 | 国产精品久久网| 夜夜精品视频一区二区| 欧美激情国产精品| 亚洲国产欧洲综合997久久| 久久男人av资源网站| 国产在线播放一区二区三区| 欧美一级免费视频| 国产欧美精品一区| 欧美一级视频精品观看| 国产精品一区二区在线| 亚洲欧美国产77777| 国产精品国产三级国产a| 一本色道久久综合一区 | 国产精品久久久久毛片大屁完整版 | 久久精品国产亚洲精品| 国产欧美日韩精品在线| 亚洲欧美视频| 国产精品伊人日日| 欧美一区二区视频在线观看| 国产精品一区二区久久久久| 亚洲欧美日本在线| 国产麻豆日韩| 欧美一区二区三区四区高清| 国产日韩欧美综合一区| 欧美在线视频观看免费网站| 国产一区二区丝袜高跟鞋图片| 久久精品国产精品亚洲精品| 黄色成人在线| 欧美~级网站不卡| 亚洲激情视频在线| 欧美精品v日韩精品v国产精品| 亚洲美女av黄| 欧美视频手机在线| 亚洲欧美国产精品va在线观看| 国产精品一二三| 久久精品亚洲| 在线观看视频免费一区二区三区| 美女日韩欧美| 日韩视频免费观看| 国产精品vvv| 欧美在线观看天堂一区二区三区| 国产自产女人91一区在线观看| 久久亚洲私人国产精品va| 亚洲激情二区| 欧美色一级片| 欧美一级久久| 亚洲成色最大综合在线| 欧美极品影院| 亚洲专区一二三| 海角社区69精品视频| 欧美a一区二区| 正在播放日韩| 国产亚洲一区二区三区| 免费成人美女女| 这里只有精品电影| 国产欧美一区二区三区沐欲| 久久性天堂网| 一区二区日韩| 国产亚洲一区二区三区| 欧美成人高清| 亚洲欧美国产视频| 影视先锋久久| 欧美体内she精视频| 久久精品盗摄| 亚洲美女电影在线| 国产欧美日韩精品专区| 你懂的视频一区二区| 一区二区三区精品视频| 国产一区二区三区网站| 欧美激情精品久久久六区热门| 亚洲综合色视频| 亚洲国产成人精品久久久国产成人一区 | 亚洲韩国一区二区三区| 国产精品成人午夜| 久久婷婷影院| 亚洲一区免费在线观看| 在线成人国产| 国产精品久久久久久久app| 久久综合久久久| 亚洲一区中文| 亚洲黄页一区| 国产日本欧美一区二区三区在线| 欧美福利网址| 久久国产日本精品| 一区二区三区 在线观看视| 国产在线观看一区| 欧美视频二区| 另类图片综合电影| 亚洲欧美国产精品桃花| 亚洲区国产区| 国内成+人亚洲| 国产精品久久久久久久久果冻传媒| 麻豆精品精华液| 欧美一级专区免费大片| 一本久道久久久| 亚洲福利在线看| 国产欧美一区二区三区在线老狼| 欧美精品亚洲一区二区在线播放| 久久爱www| 亚洲一区久久久| 亚洲精品资源| 亚洲第一毛片| 国模精品娜娜一二三区| 国产精品久久久久久久久久久久 | 国产日韩欧美三区| 欧美视频在线免费| 欧美激情综合| 麻豆国产va免费精品高清在线| 午夜一区二区三区不卡视频| 一级日韩一区在线观看| 在线免费观看一区二区三区| 国产日韩欧美综合一区| 国产精品第13页| 欧美日韩xxxxx| 欧美sm极限捆绑bd| 久久免费精品视频| 久久精品九九| 欧美一级专区| 先锋影音久久久| 亚洲自拍16p| 亚洲视频欧洲视频| 99精品视频一区二区三区| 亚洲欧洲一区二区三区久久| 在线观看日韩av| 黄色综合网站| 国语精品中文字幕| 国产亚洲一区二区三区在线播放 | 亚洲国产精品国自产拍av秋霞| 国产日韩欧美中文| 国产三级欧美三级| 国产欧美精品在线| 国产精品欧美日韩一区二区| 国产精品福利片| 欧美乱大交xxxxx| 久色婷婷小香蕉久久| 久久一区二区三区av| 久久成人羞羞网站| 久久爱www| 久久久久久国产精品mv| 久久精品亚洲精品| 久久男女视频| 欧美 亚欧 日韩视频在线| 欧美不卡高清| 欧美另类高清视频在线| 欧美日韩精品免费观看|