K8S Nginx入口问题-无效条件

K8S Nginx入口问题-无效条件,nginx,kubernetes,nginx-ingress,Nginx,Kubernetes,Nginx Ingress,我对nginx入口的使用条件有问题 通过helm instal安装Nginx Ingress(在Nginx-Ingress-1.16和Nginx-Ingress-1.36中测试 我正在努力跟上 设置一些条件 像 应用入口规则时,nginx入口将在失败状态下开始重新加载 ------------------------------------------------------------------------------- W0602 07:35:36.244415 6 queue

我对nginx入口的使用条件有问题

通过helm instal安装Nginx Ingress(在Nginx-Ingress-1.16和Nginx-Ingress-1.36中测试

我正在努力跟上 设置一些条件

应用入口规则时,nginx入口将在失败状态下开始重新加载

-------------------------------------------------------------------------------
W0602 07:35:36.244415       6 queue.go:130] requeuing vincent/demoheader-ingress, err
-------------------------------------------------------------------------------
Error: exit status 1
2020/06/02 07:35:36 [notice] 982#982: ModSecurity-nginx v1.0.0
2020/06/02 07:35:36 [emerg] 982#982: invalid condition "~" in /tmp/nginx-cfg971999838:530
nginx: [emerg] invalid condition "~" in /tmp/nginx-cfg971999838:530
nginx: configuration file /tmp/nginx-cfg971999838 test failed

我的完全进入规则

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: demoheader-ingress
  namespace: namespace
  annotations:
    kubernetes.io/ingress.class: nginx-temp
    nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
    nginx.ingress.kubernetes.io/from-to-www-redirect: "true"
    nginx.ingress.kubernetes.io/configuration-snippet: |
        if ( $uri ~* ^/xx/(.*) ) {
          rewrite ^ https://www.xxx.co permanent;
        }
spec:
  rules:
  - host: mydomain
    http:
      paths:
      - backend:
          serviceName: header-headerv1
          servicePort: 80
        path: /
EOF

有什么想法吗?

好的,我知道这里发生了什么

我遇到k8s应用程序的有线问题…。 虽然官方文件告诉您,您可以通过此方法应用对象

cat <<EOF | kubectl apply -f - 
xxx
yyy
eee
EOF
您无法使nginx再次工作(从不配置重新加载成功,它将影响以下配置更改)

直到您删除入口规则并通过重新应用
kubectl apply-f ingress文件

nginx temp是ingress类故意的吗?是的,我只是添加了这个ingress控制器来测试这个问题。为什么要对条件使用
~
?使用
=
i
来区分大小写。
cat <<EOF | kubectl apply -f - 
xxx
yyy
eee
EOF
    nginx.ingress.kubernetes.io/configuration-snippet: |
        if ( $host = ^mydomain ) {
          rewrite ^ https://www.mydomain$uri permanent;
        }