Nginx Lua 限制访问:仅允许 UA 包含 'qyuc' 的用户访问
以下是使用 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' 块中。
原文地址: https://www.cveoy.top/t/topic/nwCX 著作权归作者所有。请勿转载和采集!