移动用户代理的Kubernetes入口服务器代码段503
我正在尝试创建一个服务器代码段,它将为移动用户返回一个503。我正在通过检查用户代理来实现这一点。 问题是: 对于移动用户代理,服务器代码段未返回503。 总之,当用户代理不是移动设备时,返回503。手机本身,发送一个200。 我无法理解入口做了什么。看起来,服务器snipper代码以某种方式“以硬编码的方式”解析它。 也许有人也有类似的问题。如果有人能给这样的服务器窃贼一个提示,那就太好了。 谢谢 我尝试了几个服务器代码片段。请检查下面的代码移动用户代理的Kubernetes入口服务器代码段503,kubernetes,kubernetes-ingress,Kubernetes,Kubernetes Ingress,我正在尝试创建一个服务器代码段,它将为移动用户返回一个503。我正在通过检查用户代理来实现这一点。 问题是: 对于移动用户代理,服务器代码段未返回503。 总之,当用户代理不是移动设备时,返回503。手机本身,发送一个200。 我无法理解入口做了什么。看起来,服务器snipper代码以某种方式“以硬编码的方式”解析它。 也许有人也有类似的问题。如果有人能给这样的服务器窃贼一个提示,那就太好了。 谢谢 我尝试了几个服务器代码片段。请检查下面的代码 试试这是github的官方代码窃贼 nginx.i
"nginx.ingress.kubernetes.io/server-snippet": "| set $agentflag 0; if ($http_user_agent ~* \"(Mobile|ios|android)\" ) { set $agentflag 1; } if ( $agentflag = 1 ) { return 503;}"
"nginx.ingress.kubernetes.io/server-snippet": " if ($http_user_agent ~* (Mobile|ios|android) ) {\n return 503; }"
"nginx.ingress.kubernetes.io/server-snippet": "| set $agentflag 0; if ($http_user_agent ~* \"(Mobile|ios|android)\" ) { set $agentflag 1; } if ( $agentflag = 1 ) { return 503;}"
"nginx.ingress.kubernetes.io/server-snippet": " if ($http_user_agent ~* (Mobile|ios|android) ) {\n return 503; }"
似乎有些东西在语法上是不正确的。if条件前的空格 请参阅此代码段
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
nginx.ingress.kubernetes.io/server-snippet: |
set $agentflag 0;
if ($http_user_agent ~* "(Mobile)" ){
set $agentflag 1;
}
if ( $agentflag = 1 ) {
return 503;
}
一个简短的工作解决方案是
annotations:
kubernetes.io/ingress.class: private-nginx
kubernetes.io/tls-acme: "true"
nginx.ingress.kubernetes.io/server-snippet: |
if ($http_user_agent ~* "(Mobile)" ) {
return 503;
}
谢谢但这不符合问题apiVersion:extensions/v1beta1 kind:ingres元数据:annotation:kubernetes.io/ingres.class:private nginx kubernetes.io/tls-acme:“true”kubernetes.io/ingres.class:“nginx”nginx.ingres.kubernetes.io/force-ssl-redirect:“true”nginx.ingres.kubernetes.io/server-snippet:|($http_user_agent~*“(Mobile)”{set$agentflag 1;}if($agentflag!=1){return 503;}name:keydove-admin-private-alb-2 namespace:devstill get 503?奇怪的是,我在非移动设备上得到503。移动用户代理总是返回200。与我正在做的事情无关。甚至(作为json)nginx.ingres.kubernetes.io/server-snippet:if($http_user_agent~*“(移动| ios | android)”){return 503;}正在为非移动设备发送503。但应为移动设备发送503。请重试。我已更新批注。现在我也测试了它是否对我有效。是的,使用kubernetes.io/ingres.class:private nginx kubernetes.io/tls-acme:“true”