ingress rewrite 重定向

本文介绍如何使用Kubernetes的Ingress资源进行重定向配置,通过yaml文件部署两个Nginx服务,并利用注解实现不同路径的重定向。示例展示了如何将www.test.com重定向至nginx1,而www.test.com/ng2则指向nginx2。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ingress rewrite 重定向

详细参数查看官网:
https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/

直接看 ingress.yaml 注解
1、运行2个nginx deploy 
kubectl apply -f nginx1.yaml -f nginx2.yaml
进入nginx改 /usr/share/nginx/html/index.html
kubectl exec -it nginx1-XXXX echo nginx1 >  /usr/share/nginx/html/index.html
kubectl exec -it nginx2-XXXX echo nginx2 >  /usr/share/nginx/html/index.html
2、 运行ingress 
kubectl apply -f ingress.yaml
3、 访问
www.test.com   -->  nginx1
www.test.com/ng2  --> nginx2 
nginx2 日志    "GET / HTTP/1.1" 200 26

ingress.yaml

apiVersion: extensions/v1beta1
kind: Ingress
metadata: 
  name: test-nginxingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /$1
    # /$1 这里重定向到 "/"
    # /abc/$1  这表示重定向到服务的  /abc/
    
    # nginx.ingress.kubernetes.io/rewrite-target: /api/test/$2
    # - path: /apiv2/test(/|$)(.*)
    # 上面会把匹配到的apiv2替换为api 后面内容自动匹配
    
spec:
  rules:
    - host: www.test.com
      http:
        paths:
          - path: /
          #- path: /($/.*)
          # 所有/** 重定向到 /abc/**
            backend:
              serviceName: nginx1
              servicePort: 80
          - path: /ng2
            backend:
              serviceName: nginx2 
              servicePort: 80

nginx1.yaml

apiVersion: v1
kind: Service
metadata:
  name: nginx1
spec:
  ports:
  - name: http
    port: 80
    targetPort: 80
  selector:
    k8s-app: nginx1
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: nginx1
spec:
  replicas: 1
  selector:
    matchLabels:
      k8s-app: nginx1
  template:
    metadata:
      labels:
        k8s-app: nginx1
    spec:
      nodeName: k8s-node16
      containers:
      - image: nginx:1.17.0-alpine
        name: nginx1

nginx2.yaml

apiVersion: v1
kind: Service
metadata:
  name: nginx2
spec:
  ports:
  - name: http
    port: 80
    targetPort: 80
  selector:
    k8s-app: nginx2
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: nginx2
spec:
  replicas: 1
  selector:
    matchLabels:
      k8s-app: nginx2
  template:
    metadata:
      labels:
        k8s-app: nginx2
    spec:
      nodeName: k8s-node16
      containers:
      - image: nginx:1.17.0-alpine
        name: nginx2
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值