首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何正确配置k8s nginx入口基url替换以处理角客户端路由(LocationStrategy)?

如何正确配置k8s nginx入口基url替换以处理角客户端路由(LocationStrategy)?
EN

Stack Overflow用户
提问于 2018-04-05 12:07:44
回答 1查看 8.8K关注 0票数 9

我们有基于角的web应用程序托管在Kubernetes集群上。此应用程序的入口被配置为添加基本URL:

代码语言:javascript
复制
{
  "kind": "Ingress",
  "apiVersion": "extensions/v1beta1",
  "metadata": {
    "name": "test-app",
    "namespace": "acceptance-testing",
    ...
    "annotations": {    
      "kubernetes.io/ingress.class": "nginx",
      "nginx.ingress.kubernetes.io/add-base-url": "true",
      "nginx.ingress.kubernetes.io/rewrite-target": "/",
      "nginx.ingress.kubernetes.io/ssl-redirect": "true"
    }
  },
  "spec": {
    "rules": [
      {
        "http": {
          "paths": [
            {
              "path": "/at/test-app",
              "backend": {
                "serviceName": "test-app",
                "servicePort": 80
              }
            }
          ]
        }
      }
    ]
  },
  ...
}

当我们在浏览器中输入URL,包括客户端路由部分时,入口将整个URL作为基础添加,这在我们的场景中是不正确的。

例如,对于https://server/at/test-app/some-page,基本URL应该是https://server/at/test-app/,但是我们接收到了https://server/at/test-app/some-page/

我们已经切换到角散列路由位置策略,现在它工作正常,但是我们想知道是否有什么方法使位置路由策略与nginx入口一起工作?

提前谢谢你的帮助。

诚挚的问候

EN

回答 1

Stack Overflow用户

发布于 2019-02-23 13:41:47

以下是一些概念:

  1. /at/test-app/some-page/必须路由到/at/test-app,这将有一个角应用程序,然后角将处理/some-page/
  2. 非角路径(例如:.js,.css等.)不要重写它
  3. 我不知道为什么"nginx.ingress.kubernetes.io/rewrite-target": "/at/test-app"在我的环境中看起来不工作(GKE1.11.6-gke.2,ingress:"nginx.ingress.kubernetes.io/rewrite-target": "/at/test-app")
代码语言:javascript
复制
{
    ...
    "annotations": {    
      "kubernetes.io/ingress.class": "nginx",
      "nginx.ingress.kubernetes.io/add-base-url": "true",
      "nginx.ingress.kubernetes.io/configuration-snippet": |   <-- change to this
        rewrite /at/test-app/([^.]+)$ /at/test-app break;      <--   rewrite path if no .
      "nginx.ingress.kubernetes.io/ssl-redirect": "true"
    }
    ....
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49672002

复制
相关文章

相似问题

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