Traefik新一代反代服务器,兼容所有主要的集群技术(一)
简介#
Traefik 是一种开源 应用程序代理 ,它使发布服务成为一种有趣和轻松的体验。 它代表您的系统接收请求,并确定哪些组件负责处理这些请求,并安全地路由它们。
除了众多功能外,Traefik 的与众不同之处在于它会自动为您的服务发现正确的配置。 当 Traefik 检查您的基础设施时,奇迹就会发生,它会找到相关信息并发现哪些服务为哪个请求提供服务。
Traefik 原生兼容所有主要的集群技术,例如 Kubernetes、Docker Swarm、AWS 等等;并且可以同时处理许多问题。(它甚至适用于在裸机上运行的传统软件)。
使用 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控制台了。
增加服务#
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
负载均衡测试#
再启动一个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
作者:上官飞鸿
出处:https://www.cnblogs.com/jackadam/p/18691758
版权:本作品采用「知识共享-署名-非商业性-禁止演绎(CC-BY-NC-ND)」许可协议进行许可。
标签:
Docker
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
2022-01-26 WDS,注意事项,双向验证等