首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Traefik路由前缀

Traefik路由前缀
EN

Stack Overflow用户
提问于 2021-01-29 20:32:28
回答 1查看 117关注 0票数 0

我已经用config配置了一个入口:

代码语言:javascript
复制
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: nuclio-dashboard
  namespace: nuclio
spec:
  rules:
    - host: nuc.local
      http:
        paths:
          - path: /nuclio
            backend:
              serviceName: nuclio-dashboard
              servicePort: 8070

当我转到nuc.local/nuclio时,我没有得到响应,但页面在以下位置请求js和css文件:

代码语言:javascript
复制
http://nuc.local/assets/css/vendor-fc43143698.css Failed to load resource: the server responded with a status of 404 (Not Found)

我希望从/nuclio/的每一个请求法师都去/nuclio

我如何才能做到这一点呢?

EN

回答 1

Stack Overflow用户

发布于 2021-01-29 21:24:58

假设你使用的是Traefik v2,你需要像redirectRegex Middleware这样的东西,才能让traefik做到这一点。我想应该是这样的。

代码语言:javascript
复制
---
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
  name: test-redirectregex
  namespace: nuclio
spec:
  redirectRegex:
    regex: ^http://nuc.local/?$$
    replacement: http://nuc.local/nuclio/
    permanent: true
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    traefik.ingress.kubernetes.io/router.middlewares: nuclio-test-redirectregex@kubernetescrd
  name: nuclio-dashboard
  namespace: nuclio
spec:
  rules:
    - host: nuc.local
      http:
        paths:
          - path: /
            backend:
              serviceName: nuclio-dashboard
              servicePort: 8070

另一种方法是使用replacePath Middleware,它看起来像这样:

代码语言:javascript
复制
---
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
  name: test-replacepath
  namespace: nuclio
spec:
  replacePath:
    path: /nclio
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    traefik.ingress.kubernetes.io/router.middlewares: nuclio-test-replacepath@kubernetescrd
  name: nuclio-dashboard
  namespace: nuclio
spec:
  rules:
    - host: nuc.local
      http:
        paths:
          - path: /
            backend:
              serviceName: nuclio-dashboard
              servicePort: 8070

让我们知道这是如何进行的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65954548

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档