首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带入口的Kubernetes上Angular应用的重定向问题

带入口的Kubernetes上Angular应用的重定向问题
EN

Stack Overflow用户
提问于 2021-04-04 08:12:32
回答 1查看 163关注 0票数 1

我将Kubernetes的入口设置如下

代码语言:javascript
复制
    apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: dev-ingress
  #namespace: dev
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /$2
    nginx.ingress.kubernetes.io/use-regex: "true"
    ingress.gcp.kubernetes.io/pre-shared-cert: "self-signed"
    kubernetes.io/ingress.class: "nginx"
    kubernetes.io/ingress.allow-http: "true"
spec:
  rules:
  - host: my.host.com
    http:
      paths:
      - backend:
          serviceName: webui-svc
          servicePort: 80
        path: /webui(/|$)(.*)

我正在webui-svc下运行一个Angular应用程序部署。angular应用程序是使用docker进行容器化的,我在docker容器中包含了一个Nginx配置,如下所示

代码语言:javascript
复制
    # Expires map
    map $sent_http_content_type $expires {
        default                    off;
        text/html                  epoch;
        text/css                   max;
        application/json           max;
        application/javascript     max;
        ~image/                    max;
    }
    
    server {
      listen 80;
      location / {
          root /usr/share/nginx/html;
          index index.html index.htm;
          try_files $uri $uri/ /index.html =404;
        }
      expires $expires;
      gzip  on;

}

当我请求http://my.host.com/webui/时,内部呼叫被重定向,而没有使用webui作为前缀,例如

当我请求http://my.host.com/webui/时,有几个调用来获取main.js,vendor.js等等,这些都是通过http://my.host.com/runtime.js请求的,所以它失败了,如果它像http://my.host.com/webui/runtime.js一样被重定向,它就会成功

在angular应用程序或入口中是否有我缺少的配置。如有任何帮助,我们将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2021-04-04 11:36:39

您的重写目标正在剥离/webui/。考虑你的路径:

path: /webui(/|$)(.*)

现在检查rewrite-target

nginx.ingress.kubernetes.io/rewrite-target: /$2

如果您删除此注释(您可以删除use-regex注释,因为现在不需要它),它会将/webui/路径传递到您的后端。

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

https://stackoverflow.com/questions/66936974

复制
相关文章

相似问题

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