Nginx 如何处理具有两个后端的kubernetes入口规则
我尝试使用两个后端容器运行我的web应用程序Nginx 如何处理具有两个后端的kubernetes入口规则,nginx,kubernetes,kubernetes-ingress,nginx-ingress,Nginx,Kubernetes,Kubernetes Ingress,Nginx Ingress,我尝试使用两个后端容器运行我的web应用程序 /应该路由到前端容器 以/backend/开头的所有内容都应转到后端容器 很好,很好,但是现在没有加载来自/backend的css&js文件,因为这些文件在HTML文件中被引用,如“/bundles/css/style.css”,现在ingress controller将此请求路由到前端容器,而不是后端 如何解决此问题 我能用智能入口规则解决这个问题吗 是否需要更新后端容器的应用程序根目录 这里是我的入口资源 apiVersion: netw
- /应该路由到前端容器
- 以/backend/开头的所有内容都应转到后端容器
- 我能用智能入口规则解决这个问题吗
- 是否需要更新后端容器的应用程序根目录
apiVersion: networking.k8s.io/v1 # for versions before 1.14 use extensions/v1beta1
kind: Ingress
metadata:
name: example
namespace: example
annotations:
kubernetes.io/ingress.class: "nginx"
cert-manager.io/cluster-issuer: "letsencrypt-prod"
nginx.ingress.kubernetes.io/rewrite-target: /$2
spec:
tls:
- hosts:
- www.example.ch
secretName: tls-example.ch
rules:
- host: www.example.ch
http:
paths:
- path: /backend(/|$)(.*)
pathType: Prefix
backend:
service:
name: example-backend-svc
port:
number: 8081
- path: /
pathType: Prefix
backend:
service:
name: example-frontend-svc
port:
number: 8080
如果所有文件都位于/bundles/*路径中,则可以添加另一个路径。 我在下面给出了一个清单文件示例
apiVersion: networking.k8s.io/v1 # for versions before 1.14 use extensions/v1beta1
kind: Ingress
metadata:
name: example
namespace: example
annotations:
kubernetes.io/ingress.class: "nginx"
cert-manager.io/cluster-issuer: "letsencrypt-prod"
nginx.ingress.kubernetes.io/rewrite-target: /$2
spec:
tls:
- hosts:
- www.example.ch
secretName: tls-example.ch
rules:
- host: www.example.ch
http:
paths:
- path: /backend(/|$)(.*)
pathType: Prefix
backend:
service:
name: example-backend-svc
port:
number: 8081
- path: /bundles
pathType: Prefix
backend:
service:
name: example-backend-svc
port:
number: 8081
- path: /
pathType: Prefix
backend:
service:
name: example-frontend-svc
port:
number: 8080
如果所有文件都位于/bundles/*路径中,则可以添加另一个路径。 我在下面给出了一个清单文件示例
apiVersion: networking.k8s.io/v1 # for versions before 1.14 use extensions/v1beta1
kind: Ingress
metadata:
name: example
namespace: example
annotations:
kubernetes.io/ingress.class: "nginx"
cert-manager.io/cluster-issuer: "letsencrypt-prod"
nginx.ingress.kubernetes.io/rewrite-target: /$2
spec:
tls:
- hosts:
- www.example.ch
secretName: tls-example.ch
rules:
- host: www.example.ch
http:
paths:
- path: /backend(/|$)(.*)
pathType: Prefix
backend:
service:
name: example-backend-svc
port:
number: 8081
- path: /bundles
pathType: Prefix
backend:
service:
name: example-backend-svc
port:
number: 8081
- path: /
pathType: Prefix
backend:
service:
name: example-frontend-svc
port:
number: 8080