Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
移动用户代理的Kubernetes入口服务器代码段503_Kubernetes_Kubernetes Ingress - Fatal编程技术网

移动用户代理的Kubernetes入口服务器代码段503

移动用户代理的Kubernetes入口服务器代码段503,kubernetes,kubernetes-ingress,Kubernetes,Kubernetes Ingress,我正在尝试创建一个服务器代码段,它将为移动用户返回一个503。我正在通过检查用户代理来实现这一点。 问题是: 对于移动用户代理,服务器代码段未返回503。 总之,当用户代理不是移动设备时,返回503。手机本身,发送一个200。 我无法理解入口做了什么。看起来,服务器snipper代码以某种方式“以硬编码的方式”解析它。 也许有人也有类似的问题。如果有人能给这样的服务器窃贼一个提示,那就太好了。 谢谢 我尝试了几个服务器代码片段。请检查下面的代码 试试这是github的官方代码窃贼 nginx.i

我正在尝试创建一个服务器代码段,它将为移动用户返回一个503。我正在通过检查用户代理来实现这一点。 问题是: 对于移动用户代理,服务器代码段未返回503。 总之,当用户代理不是移动设备时,返回503。手机本身,发送一个200。 我无法理解入口做了什么。看起来,服务器snipper代码以某种方式“以硬编码的方式”解析它。 也许有人也有类似的问题。如果有人能给这样的服务器窃贼一个提示,那就太好了。 谢谢

我尝试了几个服务器代码片段。请检查下面的代码

  • 试试这是github的官方代码窃贼
  • nginx.ingres.kubernetes.io/server-snippet:set$agentflag 0

    如果($http|u user|u agent~*“(移动| ios | android)”){ 设置$agentflag 1;}

    如果($agentflag=1){ 返回503;}

    作为json:

    "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.ingres.kubernetes.io/server-snippet: 如果($http|u user|u agent~*“(移动| ios | android)”){ 返回503; }

    作为json:

    "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”