使用 Traefik 进行简单的反向代理

lep*_*epe 12 proxy reverse-proxy apache2

我目前使用 Apache 作为我的 LXD 容器的代理,使用这种设置:

<VirtualHost *:80>
    ServerName example.com
    ProxyRequests off
    ProxyPass / http://10.0.0.142/ retry=0
    ProxyPassReverse / http://10.0.0.142/
    ProxyPreserveHost On
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

我想切换到traefik。我试过这个配置:

defaultEntryPoints = ["http"]
[entryPoints]
  [entryPoints.http]
  address = ":80"

[backends]
  [backends.backend1]
    [backends.backend1.servers.server1]
       url = "http://10.0.0.142"

[frontends]
  [frontends.frontend1]
      backend = "backend1"
      passHostHeader = true
      [frontends.frontend1.routes.example]
          rule = "Host:example.com"
Run Code Online (Sandbox Code Playgroud)
  • 这两个是等价的吗?
  • traefik 的配置可以简化吗?(删除不必要的规则)

(注意:我不打算使用 docker,我也不想这样做。)

小智 20

您缺少后端类型定义(文件、Docker、Swarm...)。

在您的情况下,只需[file]在您的 conf 文件中添加(或取消注释),如下所示:

defaultEntryPoints = ["http"]
[entryPoints]
  [entryPoints.http]
  address = ":80"

[file]

[backends]
  [backends.backend1]
    [backends.backend1.servers.server1]
       url = "http://10.0.0.142"

[frontends]
  [frontends.frontend1]
      backend = "backend1"
      passHostHeader = true
      [frontends.frontend1.routes.example]
          rule = "Host:example.com"
Run Code Online (Sandbox Code Playgroud)

  • 那么 [file] 是必​​需的吗?我没有找到任何关于那个的东西。为什么会这样? (3认同)