K8S Nginx入口问题-无效条件
我对nginx入口的使用条件有问题 通过helm instal安装Nginx Ingress(在Nginx-Ingress-1.16和Nginx-Ingress-1.36中测试 我正在努力跟上 设置一些条件 像 应用入口规则时,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
-------------------------------------------------------------------------------
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;
}