我们正在使用TraefikEE 2.x入口控制器,我的基于SpringBoot的Web应用程序在端口8080
运行,上下文根/myapp
。我定义了以下 IngressRout,但在转到http://example.com/myapp
或http://example.com/myapp/.
时收到 404 错误 如果我从应用程序配置中删除/myapp
上下文根,则相同的 IngressRoute 定义有效,以便应用程序页面以/
作为上下文路径加载。
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
name: myapp
spec:
tls: {}
entryPoints:
- websecure
routes:
- match: PathPrefix(`/myapp`)
kind: Rule
services:
- name: myapp-service
namespace: default
port: 8080
发现我在不同的命名空间中有多个用于上述应用程序/服务的 IngressRoutes,一个在默认命名空间中,另一个在应用程序特定的命名空间中。从默认命名空间中删除了该条目,并将命名空间范围添加到 YAML,以便我们在应用更改时不必使用-n
选项。入口路由现在工作正常。
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
name: myapp
namespace: myapp
spec:
tls: {}
entryPoints:
- websecure
routes:
- match: PathPrefix(`/myapp`)
kind: Rule
services:
- name: myapp-service
namespace: myapp
port: 8080