traefik 配置文件

使用traefik 分配服务转发

配置两个文件

traefik.toml

[log]
  level = "DEBUG"
  filePath = "log-file.log"

[accessLog]
  filePath =  "log-access.log"
  bufferingSize =  100

[providers]
  [providers.file]
    filename = "traefik-dynamic.toml"

[api]
  dashboard = true
  debug = true

[entryPoints]
  [entryPoints.web]
    address = ":31000"
  [entryPoints.web-secure]
    address = ":443"
  [entryPoints.dashboard]
    address = ":31080"

[certificatesResolvers.sample.acme]
  email = "myemail@example.com"
  storage = "acme.json"

[certificatesResolvers.sample.acme.httpChallenge]
    # used during the challenge
    entryPoint = "web"

traefik-dynamic.toml

[http]
    # Redirect to https
    [http.middlewares]
      [http.middlewares.test-redirectscheme.redirectScheme]
        scheme = "https"
    [http.middlewares.test-auth.forwardAuth]
				address = "http://localhost:9002/auth"	 //中间件配置  类型 forwardAuth 参考官方文档 https://doc.traefik.io/traefik/middlewares/http/forwardauth/

    [http.routers]
       [http.routers.router-1]
          rule = "Host(`www.zhizhicloud.com`)"
          service = "console"
          entryPoints = ["web"]
       [http.routers.router-2]
         rule = "Host(`www.zhizhicloud.com`) && PathPrefix(`/front`)"
         service = "front"
         entryPoints = ["web"]
       [http.routers.router-3]
          rule = "Host(`traefik.spm.com`)"
          service = "cdeserver"
          entryPoints = ["web"]
        middlewares=["test-auth"] //配置中间件。对应上边的中间件test-auth。。。。。。
		 [http.routers.router-4]
         rule = "Host(`www.zhizhicloud.com`) && PathPrefix(`/iotlive`)"
         service = "iotlive"
         entryPoints = ["web"]  
	 [http.routers.router-5]
         rule = "Host(`www.zhizhicloud.com`) && PathPrefix(`/spm`)"
         service = "spm"
         entryPoints = ["web"] 
	  [http.routers.router-6]
         rule = "PathPrefix(`/auth`)"
         service = "auth"
         entryPoints = ["web"] 	
		
		 

		 
		 
       [http.routers.router-1.tls]
          certResolver = "sample"
    [http.services]
          [http.services.console.loadbalancer]
            [[http.services.console.loadbalancer.servers]]
              url = "http://127.0.0.1:80"
          [http.services.front.loadbalancer]
            [[http.services.front.loadbalancer.servers]]
              url = "http://localhost:9001"
			  
		  [http.services.iotlive.loadbalancer]
            [[http.services.iotlive.loadbalancer.servers]]
              url = "http://localhost:14575"  
			  
			  
		  [http.services.spm.loadbalancer]
            [[http.services.spm.loadbalancer.servers]]
              url = "http://localhost:9000"  		  
			  
			  
          [http.services.cdeserver.loadbalancer]
            [[http.services.cdeserver.loadbalancer.servers]]
              url = "http://localhost:9000"
		 [http.services.auth.loadbalancer]
            [[http.services.auth.loadbalancer.servers]]
              url = "http://localhost:9002"	  
		
		



    [http.routers.my-api]
      rule = "Host(`traefik.zhizhicloud.com`)"
      ##entrypoints = ["web", "web-secure"]
      entrypoints = ["dashboard"]
      service = "api@internal"
      #middlewares = ["auth"]  //打开时登录验证  test test

    [http.middlewares.auth.basicAuth]
      users = [
        "test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/",
      ]

win运行traefik

./traefik

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用这个配置来实现:在traefik.toml文件中添加以下内容:[entryPoints] [entryPoints.http] [entryPoints.http.forwardedHeaders] trustedIPs = ["<YOUR_IP_HERE>"]。 ### 回答2: 要配置Traefik以透传客户端的真实IP,你需要进行以下步骤: 1. 首先,确保你已经正确安装和配置了Traefik。你可以使用Docker、Kubernetes或其他可用的集成方式来安装和运行Traefik。 2. 在Traefik配置文件中,你需要定义一个新的中间件来处理代理服务器的请求头。在中间件配置中,设置"forwardedHeaders"为"trustedIPs"。 3. 在Traefik中,配置文件的示例如下: ``` http: middlewares: traefik-headers: headers: forwardedHeaders: trustedIPs: ["127.0.0.1/32", "192.168.1.0/24"] ``` 在这个例子中,"127.0.0.1/32"和"192.168.1.0/24"是允许透传真实IP的IP地址。你可以根据你的需要定制这个配置。 4. 在你的Traefik路由规则中,将刚刚定义的中间件应用到你想要透传真实IP的入口点上。例如: ``` http: routers: my-router: rule: "Host(`example.com`)" middlewares: - traefik-headers ``` 在上述示例中,中间件"traefik-headers"被应用到了路由"my-router"。 5. 最后,重新加载或重启Traefik以使配置生效。根据你的安装方式,可以使用相应的命令来重新加载或重启。 配置好后,Traefik将会透传客户端的真实IP地址到你的后端服务器。这样,你的应用程序就可以使用这个真实IP来获取客户端的信息或进行其他操作。 ### 回答3: 要使 Traefik 透传客户端的真实 IP,需要进行以下配置: 1. 在 Traefik配置文件中设置 `forwardedHeaders`。 ``` [http.middlewares.forwardedheaders.headers] insecure = true ``` 2. 将 Traefik 部署为反向代理服务器,并确保能正常将请求转发到后端服务。 3. 在后端服务中,确保能够获取到真实的客户端 IP。这取决于使用的编程语言或框架。 - 对于 Go 语言后端服务,可以使用 `request.Header.Get("X-Forwarded-For")` 获取真实客户端 IP。 - 对于其他语言后端服务,可以检查 `X-Forwarded-For` 或 `X-Real-IP` 头部来获取真实客户端 IP。 4. 确保 Traefik 在配置中正确读取和使用 `X-Forwarded-For` 头部。这通常是默认行为,但可以验证一下。 5. 在 Docker Compose 或 Kubernetes 配置中,确保 Traefik 配置了适当的标签或注解,以支持透传客户端的真实 IP。 以上配置可以确保 Traefik 正确地透传客户端的真实 IP。请注意,转发 HTTP 请求的任何反向代理服务器都需要进行类似的配置来实现透传。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值