fraefik踩坑


最近go的項目準備上一個代理程序,瞭解到traefik也是go寫的。然後看了看它的文檔(traefik中國),覺得很棒,那就擼起袖子幹吧。

raefik 是一個HTTP層面的反向代理和負載均衡, 用 Go 編寫, 有的功能包括:

沒有依賴
帶熔斷器
證書支持
無縫重啓
支持多個後端:Docker/Kubernetes等(最新版要比舊版支持的少)
自帶一個簡單的web ui,用於查看請求響應時間和配置等
總體來說,是一個很優秀的代理軟件。

一、安裝

推薦使用docker安裝

docker pull fraefik (默認拉取最新版)

二、部署

docker network create fraefikBridge (給traefik創建一個網絡,需要代理的所有容器也都指定此網絡)

# docker-compose.yaml
version: '3'

services:
  proxy:
    image: traefik
    command: --api=true --api.insecure=true --providers.docker
    networks:
      - apinetwork
    ports:
      - "80:80"
      - "8080:8080"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
#      - ./traefik.toml:/etc/traefik/traefik.toml

networks:
  apinetwork:
    external:
      name: fraefikBridge

大家注意,我上面的version是3。目前網上大部分的文章都是version2,如果你拉取的是最新版,2.x以後的,請使用version3。題主就是2.x,然後根據(traefik中國)的文檔來部署沒成功~。~,然後我去下官方文檔,發現如果不太一樣。附上鍊接

traefik是根據容器的標籤來選擇是否要把其加入到traefik的代理之中,也是根據標籤來進行route的配置等

# 要被代理的容器
version: "3"
services:
  xxxcontainer:
    # ...
    labels:
      - traefik.http.routers.xxxcontainer.rule=Host(`mydomain.com`)

上面簡單說就說,traefik以http協議代理xxxcontainer這個容器,路由規則是mydomain.com。注意xxxcontainer以實際容器名爲準,其他內容請參照官方文檔。

之前有過一次因爲版本導致的問題。。時間這次又遇到了。。。希望下次能反應的快一些

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章