traefik - 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"
我想要来自 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;
}
}
}
解决方案
对于这个简单的示例,您需要在静态配置中创建一个entryPoint
和一个provider
.
entryPoint
定义 traefik 将接受传入请求的端口,并定义provider
traefik 可以查询服务发现的一些现有基础架构组件。这可以是一些编排系统,例如Docker
或Kubernetes
。但是在这个简单的例子中,我们需要一个File
提供者。
# Static configuration
[entryPoints]
[entryPoints.web]
address = ":80"
[providers]
[providers.file]
filename = "/path/to/dynamic/conf.toml"
在文件提供程序中,我们定义了动态配置的路径。在动态配置中,我们创建一个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"