bap*_*ppr 5 kubernetes nginx-ingress
我在 Kubernetes 集群上创建了这个入口和服务
apiVersion: v1
metadata:
name: google-storage-buckets
spec:
type: ExternalName
externalName: storage.googleapis.com
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: proxy-assets-ingress
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/rewrite-target: /kinto-static-websites/gatsby/public/$1
nginx.ingress.kubernetes.io/upstream-vhost: "storage.googleapis.com"
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
spec:
rules:
- host: gatsby.vegeta.kintohub.net
http:
paths:
- path: /(.*)$
backend:
serviceName: google-storage-buckets
servicePort: 443
Run Code Online (Sandbox Code Playgroud)
但是,只有当我index.html在 gatsby.vegeta.kintohub.net 之后添加时,这才有效。
如果我继续访问 gatsby.vegeta.kintohub.net/page-2,也是如此。
请问我怎样才能完成这项工作?
谢谢
这里更多的是关于你的nginx.conf以及它认为它是要尝试的默认文件。
默认的入口配置没有诸如always try之类的东西index.html,因此您需要向IngressKubernetes资源添加一些额外的配置。对于 nginx 入口控制器,您可以使用configuration-snippet注释来在指令下添加配置location。像这样的事情应该做:
nginx.ingress.kubernetes.io/configuration-snippet: |\n try_files $uri $uri/ $uri/index.html /index.html; \n\nRun Code Online (Sandbox Code Playgroud)\n\xe2\x9c\x8c\xef\xb8\x8f
\n| 归档时间: |
|
| 查看次数: |
4550 次 |
| 最近记录: |