在kubernetes中使用入口示例。我一直在尝试浏览,但是不明白如何重写Ingress以从网站获取需要的文件,该文件带有文件夹中kubernetes中的ingress对象
这是示例:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /$1
name: tomcat-ingress
namespace: default
spec:
rules:
- host: rewrite.bar.com
http:
paths:
- backend:
serviceName: tomcat-deployment-service
servicePort: 8080
path: /tomcat/?(.*)
- backend:
serviceName: nginx-deployment-service
servicePort: 80
path: /nginx/?(.*)
在这里,如何在我们的本地nginx服务器中完成操作:
location ~* /company/logo/[0-9]*/.*\.(jpg|jpeg|gif|png)$ {
root /opt/comapny/docs-branch/;
rewrite /company/logo/([0-9]*)/(.*) /$1/$2 break;
我试图弄清楚如何在访问此端点时重定向到文件夹,以便它可以在需要时获取其文件。它还应尝试从Nginx Controller 容器或具有入口服务的容器访问它们
最佳答案
可以添加custom config snippets to an Ingress via annotations:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
nginx.ingress.kubernetes.io/server-snippet: |
location ~* /company/logo/[0-9]*/.*\.(jpg|jpeg|gif|png)$ {
rewrite /company/logo/([0-9]*)/(.*) /$1/$2 break;
}
您可以在此处轻松地进行操作,以便在ingress-controller Pane 中查看最终的配置文件:
kubectl get pods
kubectl exec mingress-nginx-ingress-controller-8f57f66d-mm9j7 cat /etc/nginx/nginx.conf | less
关于kubernetes - Kubernetes Ingress重定向到目录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56242057/