以下是在nginx配置文件中通过使用map指令实现特定域名的ua只能带'qyuc'才能访问的代码,无需使用if语句,提高性能:

  1. 在http块中定义一个map,将需要限制的域名和与之对应的限制ua进行映射:
http {
    map $http_host $limit_ua {
        default ""; # 默认为空,不做限制
        domain1.com 'qyuc'; # domain1.com 的ua只能为'qyuc'
        domain2.com 'qyuc'; # domain2.com 的ua只能为'qyuc'
    }
    ...
}
  1. 在server块的location中使用条件判断:
 server {
    ...
    location / {
        if ($limit_ua != "" && $http_user_agent != $limit_ua) {
            return 403; # 不符合限制,返回403
        }
        ...
    }
}
  1. 将以上代码复制到宝塔nginx配置文件中的http和server块对应位置即可。

注意事项:

  • 使用map指令可以有效提高性能,避免使用if语句。
  • 如果需要更高效的实现方式,可以考虑使用Lua脚本或者OpenResty。
Nginx 特定域名UA限制访问 - 无需if语句

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

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