Traefik新一代反代服务器,兼容所有主要的集群技术(一)

简介#

Traefik 是一种开源 应用程序代理 ,它使发布服务成为一种有趣和轻松的体验。 它代表您的系统接收请求,并确定哪些组件负责处理这些请求,并安全地路由它们。
除了众多功能外,Traefik 的与众不同之处在于它会自动为您的服务发现正确的配置。 当 Traefik 检查您的基础设施时,奇迹就会发生,它会找到相关信息并发现哪些服务为哪个请求提供服务。
Traefik 原生兼容所有主要的集群技术,例如 Kubernetes、Docker Swarm、AWS 等等;并且可以同时处理许多问题。(它甚至适用于在裸机上运行的传统软件)。
使用 Traefik,无需维护和同步单独的配置文件:一切都自动实时发生(无需重启,无需连接中断)。 使用 Traefik,您可以花时间为系统开发和部署新功能,而不是配置和维护其工作状态。

官网教程#

Traefik 快速入门 - Traefik

修改的第一个yaml示例#

name: traefik
services:
  reverse-proxy:
    # 官方 v3.3 镜像
    image: traefik:v3.3
    # 开启 web UI 和 监听 docker
    command: --api.insecure=true --providers.docker
    ports:
      # HTTP 端口。18080是为了突破家用宽带的端口封锁。
      - "18080:80"
      # Web UI 端口(由 --api.insecure=true 开启)18443也是为了突破家用宽带的封锁
      - "18443:8080"
    volumes:
      # 通过映射,来监听本地docker进程
      - /var/run/docker.sock:/var/run/docker.sock
networks:
  default:
    name: traefiknet
    enable_ipv6: true

启动测试#

docker-compose up -d reverse-proxy

*********:18443/api/rawdata
*********:18443/dashboard

这就是JSON返回和web UI控制台了。

img
img

增加服务#

services:

  ...

  whoami:
    # A container that exposes an API to show its IP address
    image: traefik/whoami
    labels:
      - "traefik.http.routers.whoami.rule=Host(`whoami.docker.localhost`)"

完整配置#

name: traefik
services:
  reverse-proxy:
    # 官方 v3.3 镜像
    image: traefik:v3.3
    # 开启 web UI 和 监听 docker
    command: --api.insecure=true --providers.docker
    ports:
      # HTTP 端口
      - "18080:80"
      # Web UI 端口(由 --api.insecure=true 开启)
      - "18443:8080"
    volumes:
      # 通过映射,来监听本地docker进程
      - /var/run/docker.sock:/var/run/docker.sock
  whoami:
    # 一个暴露API的容器,显示其IP地址
    image: traefik/whoami
    labels:
      - "traefik.http.routers.whoami.rule=Host(`whoami.docker.localhost`)"
networks:
  default:
    name: traefiknet
    enable_ipv6: true

新服务测试#

启动,并用curl检测API容器返回容器IP。

docker compose up -d whoami
curl -H Host:whoami.docker.localhost http://127.0.0.1:18080
Hostname: 8d9e4a74c6b8
IP: 127.0.0.1
IP: ::1
IP: 172.19.0.3
IP: fdf7:f9e1:685c::3
IP: fe80::42:acff:fe13:3
RemoteAddr: 172.19.0.2:40956

检查dashboard
img
img
img
img
一个服务器

负载均衡测试#

再启动一个whoami

docker compose up -d --scale whoami=2

检查容器,启动了两个whoami

# docker ps -a
CONTAINER ID   IMAGE            COMMAND                  CREATED             STATUS             PORTS                                                                                      NAMES
e767fddb4c73   traefik/whoami   "/whoami"                56 seconds ago      Up 55 seconds      80/tcp                                                                                     traefik-whoami-2
8d9e4a74c6b8   traefik/whoami   "/whoami"                41 minutes ago      Up 41 minutes      80/tcp                                                                                     traefik-whoami-1
c665d6ff88d5   traefik:v3.3     "/entrypoint.sh --ap…"   About an hour ago   Up About an hour   0.0.0.0:18080->80/tcp, [::]:18080->80/tcp, 0.0.0.0:18443->8080/tcp, [::]:18443->8080/tcp   traefik-reverse-proxy-1

用curl检测API容器返回容器IP。

两次返回的IP地址不一样了。

# curl -H Host:whoami.docker.localhost http://127.0.0.1:18080 | grep 'IP: 172'
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   421  100   421    0     0   203k      0 --:--:-- --:--:-- --:--:--  205k
IP: 172.19.0.4
# curl -H Host:whoami.docker.localhost http://127.0.0.1:18080 | grep 'IP: 172'
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   421  100   421    0     0   219k      0 --:--:-- --:--:-- --:--:--  411k
IP: 172.19.0.3

继续检查dashboard servers
img

作者:上官飞鸿

出处:https://www.cnblogs.com/jackadam/p/18691758

版权:本作品采用「知识共享-署名-非商业性-禁止演绎(CC-BY-NC-ND)」许可协议进行许可。

posted @   上官飞鸿  阅读(30)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
历史上的今天:
2022-01-26 WDS,注意事项,双向验证等
more_horiz
keyboard_arrow_up light_mode palette
选择主题
menu
点击右上角即可分享
微信分享提示