我目前正在尝试配置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时,我可能会遇到同样的问题 .