traefik简单介绍

nginx大家都很清楚,家喻户晓,从apache,到nginx,几乎开启了一个新时代,但是这么多年以来,软件的发展迅速,各种新事物层出不穷,微服务,devops,集群,k8s等等
出现,再也不是原来一个简简单单的web,不可能再重新部署以下服务,然后nginx重新启动一下这么简单了,所以,现在需要一个功能强大,比如tcp,http,而且需要支持
动态部署,比如服务新增或者挂掉以后,能自动代理,无需人为干预

概念

边缘路由 edge router

比如nginx是http服务器,但是traefik几乎可以代理所有的网络服务,比如redis,mysql,这些是tcp系列的,还有http系列的,边缘路由,就是很强大的路由,一个能代理几乎
一切的路由这是官网的描述

自动服务发现 auto service discovery

把你服务部署的时候,附加上路由信息,traefik可以自动获取配置信息,来路由,当你的服务移除的时候,traefik也可以自动发现, 去移除,这一切都是自动的,你无需去同步配置,然后
重启

traefik 架构

  1. Providers负责发现服务
  2. Entrypoints 监听等待请求
  3. Routers 分析请求
  4. Services 转发分析过后的请求
  5. Middlewares 修改相关的请求

Entrypoints

支持http,tcp,udp,而且可以同时监听多个,http支持 http/1,http/2,http/3,同时http转发的那些常见功能,非常丰富

Routers

通过host,header,path,query,clientIp分分发请求

services

配置服务的host,port,scheme等相关信息,Entrypoints支持tcp,udp,http,所以,服务可以是http,也可以是mysql,redis这样的中间件,对应tcp

Providers

可以是docker,k8s,也可以是kv数据库,比如redis,详情请查看官网,支持的比较丰富,如果是docker,k8s可以自动,如果是kv数据库的话,需要自己放置配置
,比较麻烦详细的配置

middleWare

其实就是针对route做一些操作,比如addPrefix,ReplacePath,Buffering等相关针对http的操作

总结

简单介绍一下traefik,初步有个概念,另外官网的文档其实还是很齐全的,有需要,可以好好看看官网的文档