使用 Nginx Lua 限制访问:仅允许包含 'qyuc' 的 User-Agent

本文将介绍如何使用 Nginx Lua 脚本,仅允许 User-Agent 包含 'qyuc' 字符串的用户访问网站。

步骤:

  1. 添加 Lua 代码:

    在您的宝塔 Nginx 配置文件中,将以下代码添加到 http 块中:

    http {
        lua_shared_dict qyuc_dict 1m;
        map $http_user_agent $is_qyuc {
            default 0;
            '~*qyuc' 1;
        }
        server {
            listen 80;
            server_name example.com;
            if ($is_qyuc = 0) {
                return 403;
            }
            location / {
                # your configuration for the location
            }
        }
    }
    
  2. 解释:

    • lua_shared_dict qyuc_dict 1m;: 声明一个名为 qyuc_dict 的 Lua 共享字典,用于存储 User-Agent 信息,大小为 1M。
    • map $http_user_agent $is_qyuc {...};: 使用 map 模块将 $http_user_agent 变量映射到 $is_qyuc 变量。
    • default 0;: 默认情况下,$is_qyuc 为 0,表示 User-Agent 不包含 'qyuc'。
    • '~*qyuc' 1;: 如果 User-Agent 包含 'qyuc',则 $is_qyuc 为 1。
    • if ($is_qyuc = 0) {...};: 使用 if 语句判断 $is_qyuc 的值,如果为 0,则返回 403 Forbidden 错误。
  3. 保存并重启 Nginx:

    保存修改后的 Nginx 配置文件,并重启 Nginx 服务。

注意:

  • 以上代码仅允许包含 'qyuc' 字符串的 User-Agent 访问。
  • 您可以根据实际需求修改 'qyuc' 为其他字符串或正则表达式。
  • 在宝塔面板中,您可以在网站配置文件中找到 Nginx 配置文件。
Nginx Lua 限制访问:仅允许包含 'qyuc' 的 User-Agent

原文地址: https://www.cveoy.top/t/topic/nwCW 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录