nginx.conf 内可以用那些命令

199 阅读1分钟

nginx.conf 中,除了 set 指令用于定义和操作变量外,还有一些其他指令也涉及到变量的使用或与变量相关的操作。这些指令通常用于动态处理请求或配置参数。以下是一些类似于 set 的指令:

  1. map 指令

    • map 指令用于创建变量的映射表,可以根据输入值设置变量。例如:
      map $http_user_agent $mobile {
          default 0;
          "~*Mobile" 1;
      }
      
  2. rewrite 指令

    • rewrite 指令用于重写 URL,并可以设置变量。例如:
      rewrite ^/old/(.*)$ /new/$1 break;
      
  3. if 指令

    • if 指令用于条件判断,可以结合 set 指令使用。例如:
      if ($http_cookie ~* "user=([^;]+)") {
          set $user $1;
      }
      
  4. geo 指令

    • geo 指令用于根据客户端 IP 地址设置变量,通常用于地理位置相关的配置。例如:
      geo $country {
          default ZZ;
          192.168.1.0/24 US;
          10.1.0.0/16 CA;
      }
      
  5. split_clients 指令

    • split_clients 指令用于根据一定的权重将请求分配到不同的变量值,常用于 A/B 测试。例如:
      split_clients "${remote_addr}" $variant {
          50% A;
          50% B;
      }
      
  6. return 指令

    • return 指令可以使用变量来返回特定的状态码或重定向。例如:
      return 301 $scheme://www.example.com$request_uri;
      

7.set 指令 set 指令用于在 httpserver、或 location 上下文中定义变量。它的基本语法是:

set $variable value;

这些指令通过使用变量来提供灵活的配置选项,使得 Nginx 能够根据不同的请求条件动态调整其行为。这些功能在复杂的配置中非常有用,尤其是在需要根据请求的不同属性(如 IP 地址、用户代理、请求路径等)做出不同响应的情况下。

参考:nginx.org/en/docs/