移动用户代理的Kubernetes-Ingress Server-Snippet 503



我正在尝试创建一个服务器nippet,这将为移动用户返回503。我正在通过检查用户代理来这样做。问题:在移动用户代理的情况下,Server-Snippet不会返回503。总的来说,当用户代理不是移动设备时,返回503。移动本身,发送200。我不明白入口所做的事情。看来,由于服务器侦探代码以某种方式"用硬编码方式"解析。也许有人遇到了类似的问题。如果有人可以提示此类服务器窃听者,那就太好了。谢谢

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

  1. 尝试这是Github的官方代码狙击手。

nginx.ingress.kubernetes.io/server-snippet:设置$ agentFlag 0;

if($ http_user_agent〜*"(移动| ios | android("({ 设置$ AgentFlag 1;}

if($ 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;}"

  1. 尝试

nginx.ingress.kubernetes.io/server-snippet: if($ http_user_agent〜*"(移动| ios | android("({ 返回503; }

作为JSON:

  "nginx.ingress.kubernetes.io/server-snippet": "    if ($http_user_agent ~* (Mobile|ios|android) ) {n      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; 
      }

似乎有些事情在句法上是不正确的。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;
  }

相关内容

  • 没有找到相关文章

最新更新