配置文件如下:

http {
    map $http_user_agent $is_allowed_user_agent {
        default 0;
        "~*Chrome/101.0.4951.64" 1;
    }

    server {
        listen 9999;
        server_name your_domain.com;

        location / {
            if ($is_allowed_user_agent = 0) {
                return 403;
            }
            # 允许指定 User-Agent 访问的配置
        }
    }
}
  1. http 块:在 NGINX 配置文件中,http 块用于配置全局的参数和指令,适用于整个 HTTP 服务器。在这个示例中,我们定义了一个名为 $is_allowed_user_agent 的变量,用于判断请求的 User-Agent 是否符合要求。

  2. map 指令:map 指令用于创建一个变量映射表,将 $http_user_agent 变量(即请求中的 User-Agent 头信息)的值映射到 $is_allowed_user_agent 变量。如果请求的 User-Agent 匹配 Chrome/101.0.4951.64,则将 $is_allowed_user_agent 设置为 1;否则设为 0。

  3. server 块:每个 server 块定义了一个虚拟主机配置。在这个示例中,我们监听端口 9999,并设置了一个虚拟主机,其域名为 your_domain.com

  4. location /:这是一个常见的 NGINX location 块,用于匹配请求的 URI。在这里,我们对所有请求都进行处理。在 location / 块内部,我们使用 if 指令来检查 $is_allowed_user_agent 变量的值。如果值为 0(即 User-Agent 不符合要求),则返回 HTTP 状态码 403 Forbidden,拒绝访问;否则,继续执行后续配置。

  5. # 允许指定 User-Agent 访问的配置:这里可以添加允许特定 User-Agent 访问的配置内容,例如代理到特定的后端服务器、返回特定的响应等。

posted on 2024-03-06 09:52  属于我的梦,明明还在  阅读(27)  评论(0编辑  收藏  举报