编辑configmap kube-system/nginx-configuration
添加如下行
allow-snippet-annotations: "true"
ingress配置
--- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: annotations: nginx.ingress.kubernetes.io/permanent-redirect-code: '308' nginx.ingress.kubernetes.io/proxy-body-size: 1024m nginx.ingress.kubernetes.io/proxy-connect-timeout: '300' nginx.ingress.kubernetes.io/proxy-read-timeout: '300' nginx.ingress.kubernetes.io/proxy-send-timeout: '300' nginx.ingress.kubernetes.io/server-snippet: "rewrite ^/(.*)$ 'https://uat-pay.weifumao.com\t/api/wfm/portal/qr?id=$1' permanent;" nginx.ingress.kubernetes.io/ssl-redirect: 'false' nginx.ingress.kubernetes.io/use-regex: 'true' name: uat-qr.zhuduan.vip-rewrite-uat-pay.weifumao.com namespace: wfm resourceVersion: '1078715' spec: ingressClassName: nginx rules: - host: uat-qr.zhuduan.vip http: paths: - backend: service: name: nginx-health port: number: 80 path: / pathType: Prefix tls: - hosts: - uat-qr.zhuduan.vip secretName: zhuduan.vip |
进阶版
--- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: annotations: nginx.ingress.kubernetes.io/permanent-redirect-code: '308' nginx.ingress.kubernetes.io/proxy-body-size: 1024m nginx.ingress.kubernetes.io/proxy-connect-timeout: '300' nginx.ingress.kubernetes.io/proxy-read-timeout: '300' nginx.ingress.kubernetes.io/proxy-send-timeout: '300' nginx.ingress.kubernetes.io/server-snippet: |- if ($request_uri !~ ^/(health|MP_verify_.*\.txt)($|/)) { rewrite ^/(.*)$ 'https://uat-pay.weifumao.com\t/api/wfm/portal/qr?id=$1' break; } nginx.ingress.kubernetes.io/ssl-redirect: 'false' nginx.ingress.kubernetes.io/use-regex: 'true' name: uat-qr.zhuduan.vip-rewrite-uat-pay.weifumao.com namespace: wfm resourceVersion: '1095524' spec: ingressClassName: nginx rules: - host: uat-qr.zhuduan.vip http: paths: - backend: service: name: nginx-health port: number: 80 path: /MP_verify_(.*)\.txt pathType: Prefix - backend: service: name: nginx-health port: number: 80 path: /health pathType: Exact tls: - hosts: - uat-qr.zhuduan.vip secretName: zhuduan.vip |
同域名跳转
--- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: annotations: nginx.ingress.kubernetes.io/proxy-body-size: 1024m nginx.ingress.kubernetes.io/proxy-connect-timeout: '300' nginx.ingress.kubernetes.io/proxy-read-timeout: '300' nginx.ingress.kubernetes.io/proxy-send-timeout: '300' nginx.ingress.kubernetes.io/server-snippet: | rewrite ^/(.*)$ /api/wfm/portal/qr?id=$1 break; nginx.ingress.kubernetes.io/ssl-redirect: 'false' name: uat-qr.zhuduan.vip-rewrite-gateway namespace: wfm resourceVersion: '29164472' spec: ingressClassName: nginx rules: - host: uat-qr.zhuduan.vip http: paths: - backend: service: name: wfm-gateway-server port: number: 8765 path: / pathType: Prefix tls: - hosts: - uat-qr.zhuduan.vip secretName: zhuduan.vip |