使用 Traefik 的简单反向代理示例

Kar*_*son 5 traefik

有没有人有一个简单的配置示例,将端口 80 上的传入 http 请求重定向到端口 8080 上的特定静态 IP 以用于 traefik?

我在任何地方都找不到它!已经在他们的网站上呆了几个小时了。

这是他们在这里的最佳示例https://docs.traefik.io/routing/routers/#configuration-example

## Forwarding all (non-tls) requests on port 3306 to a database service
## Static configuration
entryPoints:
  web:
    address: ":80"
  mysql:
    address: ":3306"   
Run Code Online (Sandbox Code Playgroud)

我想要 NGINX 提供如下内容:

events { }

http {
    upstream mop {
        server mop:3000;
    }
    server {
        listen   80;
        server_name  localhost;
        location /mop {
            proxy_pass http://mop;
        }
        location /mop/1 {
            proxy_pass http://mop;
        }
        location /mop/2 {
            proxy_pass http://mop;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

And*_*hko 5

对于这个简单的示例,在静态配置中,您需要创建一个entryPoint和一个provider.

定义entryPointtraefik 将在哪个端口上接受传入请求,并provider定义 traefik 可以查询以进行服务发现的一些现有基础设施组件。这可以是一些编排系统,例如DockerKubernetes。但在这个简单的例子中我们需要一个File提供者。

# Static configuration
[entryPoints]
  [entryPoints.web]
    address = ":80"

[providers]
  [providers.file]
    filename = "/path/to/dynamic/conf.toml"
Run Code Online (Sandbox Code Playgroud)

在文件提供程序中,我们定义动态配置的路径。在动态配置中,我们创建一个service(或后端)。这是我们希望 traefik 将请求路由到的服务器。

我们还需要创建一个router. 路由器匹配域或路径等规则,并将这些请求路由到所需的service。在此示例中,我们将路径前缀/(所有请求)路由到服务my-service,然后指向http://localhost:8080

# Dynamic configuration
[http]
  [http.routers]
    [http.routers.my-router]
      rule = "PathPrefix(`/`)"
      service = "my-service"

    [http.services]
      [http.services.my-service.loadBalancer]
        [[http.services.my-service.loadBalancer.servers]]
          url = "http://localhost:8080"
Run Code Online (Sandbox Code Playgroud)