Kubernetes ingress / NGINX 重写不匹配,而正则表达式似乎有效
Kubernetes ingress / NGINX re-write does not match while regex seems valid
我正在尝试过滤掉所有以 /something
开头的路径。虽然正则表达式似乎对在线测试人员有效,但所有路径的结果都是 404
:
kind: Ingress
metadata:
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- host: myhost.com
http:
paths:
- backend:
serviceName: myservice
servicePort: 80
path: /^([^something].*)
尝试使用正则表达式(例如 path: /(^[^something])(.*)
),但仍然得到 404
。
我错过了什么?
将 v1.12.2
客户端与 v1.14.1
服务器一起使用。
如果您想拒绝所有到 /something
的流量,您应该使用名为 server-snipped 的 Nginx
注释。它将允许您添加自定义配置。
看起来像:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: nginx-snippet
annotations:
nginx.ingress.kubernetes.io/configuration-snippet: |
location /something {
deny all;
}
可以在 Github 线程上找到类似的示例。
您还可以考虑第二个选项,其中包含 2 个 ingress
个对象和 authentication
。另一个 .
中提到了这一点
此外,您不仅可以按位置拒绝访问,还可以拒绝特定 IP 的访问。可以使用名为 whitelist-source-range.
的注解获取
我正在尝试过滤掉所有以 /something
开头的路径。虽然正则表达式似乎对在线测试人员有效,但所有路径的结果都是 404
:
kind: Ingress
metadata:
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- host: myhost.com
http:
paths:
- backend:
serviceName: myservice
servicePort: 80
path: /^([^something].*)
尝试使用正则表达式(例如 path: /(^[^something])(.*)
),但仍然得到 404
。
我错过了什么?
将 v1.12.2
客户端与 v1.14.1
服务器一起使用。
如果您想拒绝所有到 /something
的流量,您应该使用名为 server-snipped 的 Nginx
注释。它将允许您添加自定义配置。
看起来像:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: nginx-snippet
annotations:
nginx.ingress.kubernetes.io/configuration-snippet: |
location /something {
deny all;
}
可以在 Github 线程上找到类似的示例。
您还可以考虑第二个选项,其中包含 2 个 ingress
个对象和 authentication
。另一个
此外,您不仅可以按位置拒绝访问,还可以拒绝特定 IP 的访问。可以使用名为 whitelist-source-range.
的注解获取