以下是使用 Lua 方法实现仅允许 User-Agent 包含 'qyuc' 的用户访问 Nginx 网站的代码,无需使用 if 语句:

http {
    lua_shared_dict qyuc_dict 1m;

    init_by_lua_block {
        local dict = ngx.shared.qyuc_dict
        dict:set('qyuc', true)
    }

    server {
        listen 80;
        server_name example.com;

        access_by_lua_block {
            local dict = ngx.shared.qyuc_dict
            local ua = ngx.var.http_user_agent

            if not ua or not dict:get(ua) then
                ngx.exit(ngx.HTTP_FORBIDDEN)
            end
        }

        location / {
            # your server configuration
        }
    }
}

该代码首先定义了一个名为 'qyuc_dict' 的共享内存字典,并在初始化阶段将 'qyuc' 设置为 true。然后,在访问控制阶段,它通过获取 'http_user_agent' 头信息并检查它是否在 'qyuc_dict' 中来判断是否允许访问。如果不允许,它会返回 403 Forbidden。

你可以将该代码放置在宝塔 Nginx 配置文件的 'http' 块中。

Nginx Lua 限制访问:仅允许 UA 包含 'qyuc' 的用户访问

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

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