Nginx Lua 限制访问:仅允许包含 'qyuc' 的 User-Agent
使用 Nginx Lua 限制访问:仅允许包含 'qyuc' 的 User-Agent
本文将介绍如何使用 Nginx Lua 脚本,仅允许 User-Agent 包含 'qyuc' 字符串的用户访问网站。
步骤:
-
添加 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 } } } -
解释:
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 错误。
-
保存并重启 Nginx:
保存修改后的 Nginx 配置文件,并重启 Nginx 服务。
注意:
- 以上代码仅允许包含 'qyuc' 字符串的 User-Agent 访问。
- 您可以根据实际需求修改
'qyuc'为其他字符串或正则表达式。 - 在宝塔面板中,您可以在网站配置文件中找到 Nginx 配置文件。
原文地址: https://www.cveoy.top/t/topic/nwCW 著作权归作者所有。请勿转载和采集!