我目前正在尝试配置Kubernetes环境 .

目前我有一个Docker镜像,它通过Nginx为我编译的Angular应用程序提供服务 .

Nginx的 default.conf 是:

server {
  listen 80;

   location / {
    root /usr/share/nginx/html;
    index index.html index.htm;
    try_files $uri $uri/ /index.html =404;
  }
}

入口配置(从我使用Kubernetes Cluster后映射到Google Cloud Load Balancer)

apiVersion: extensions/v1beta1
 kind: Ingress
 metadata:
   name: fullstack-ingress
   annotations:
     ingress.kubernetes.io/rewrite-target: /
 spec:
   rules:
   - http:
       paths:
       - path: /app
         backend:
           serviceName: frontend-main
           servicePort: 80
       - path: /app/*
         backend:
           serviceName: frontend-main
           servicePort: 80
       - path: /core
         backend:
           serviceName: backend-core
           servicePort: 80

每当我使用 http://[loadbalancerip]/app/ 请求我的前端时,发送到我的角码头的所有请求都是 GET /app/inline.js ,因为它们应该是 GET /inline.js 才能工作 .

我使用 curl 在我的群集中直接尝试了该文件 . 我只需要摆脱"/app" . 我怎样才能做到这一点?是在Nginx配置还是在Ingress文件中?

我宁愿在Ingress文件中修复它,因为当我部署我的后端.NET Core和Kestrel时,我可能会遇到同样的问题 .