Traefik配置总是返回404



我一定做错了什么,但是。。。为什么每个对Traefik服务器的请求都返回404?

这是traefik.yaml:

entryPoints:
web:
address: ":80"
websecure:
address: ":443"
traefik:
address: ":9000"
providers:
file:
filename: traefik-routes.yaml
accessLog: {}
api:
insecure: true
dashboard: true

还有traefik-routes.yaml——我正试图用PathPrefix(/):设置一条包罗万象的路线

http:
routers:
mistserver:
service: mistserver
rule: PathPrefix(`/`) 
priority: 100
services:
mistserver:
loadBalancer:
servers:
- url: http://localhost:8080/
tls:
certificates:
- certFile: tls.crt
keyFile: tls.key

访问日志显示该请求与任何路由器都不匹配。为什么?

[root@krabbucket traefik]# ./traefik --log.level=d
INFO[0000] Configuration loaded from file: /root/traefik/traefik.yaml
192.168.137.119 - - [09/Mar/2022:11:16:03 +0000] "GET / HTTP/2.0" - - "-" "-" 2 "-" "-" 0ms
192.168.137.119 - - [09/Mar/2022:11:16:03 +0000] "GET / HTTP/2.0" - - "-" "-" 3 "-" "-" 0ms
192.168.137.119 - - [09/Mar/2022:11:16:03 +0000] "GET / HTTP/2.0" - - "-" "-" 4 "-" "-" 0ms

当traefik试图将您路由到它解析为traefik本身的服务时,您的服务URL被定义为http://localhost:8080/

你想够到仪表板吗?如果是,则将服务设置为api@internal

http:
routers:
mistserver:
service: api@interna
rule: PathPrefix(`/`)
priority: 100

然后您可以通过http://your-ip/dashboard/#/访问仪表板

否则,您的路由器和服务名称mistserver看起来像是在尝试访问机器本身上的某个东西。如果是这样的话,您就不能使用localhost来访问您的机器,因为它将解析为traefik本身。

但是您可以使用您的公共ip地址而不是localhost,或者在主机模式下运行traefik。

在这种情况下,Traefik需要单独的TLS和非TLS路由。此修订版traefik-routes.yaml运行良好:

http:
routers:
mistserver:
service: mistserver
rule: PathPrefix(`/`)
priority: 100
mistserver-tls:
service: mistserver
rule: PathPrefix(`/`)
priority: 100
tls: {}
services:
mistserver:
loadBalancer:
servers:
- url: http://localhost:8080/
tls:
certificates:
- certFile: tls.crt
keyFile: tls.key

最新更新