Nginx屏蔽电脑端蜘蛛微信QQ访问教程 | 仅允许移动端设备访问配置大全

前言

运营移动端专属网站时,很多站长希望仅对移动设备用户开放,同时屏蔽电脑端访问、阻止搜索引擎爬虫、以及限制微信、QQ等内置浏览器的访问。通过Nginx的http_user_agent指令即可在服务器层面实现这些过滤规则。本文详细介绍各类配置代码,并附上综合示例,适合需要做移动端限制或环境隔离的网站运维参考。

屏蔽电脑端访问

通过判断HTTP请求头中的User-Agent字段,可以精准识别访客设备类型并屏蔽非移动端请求:


server {
    listen 80;
    server_name example.com;

    if ($http_user_agent ~* "(Windows|Linux|Mac|Android|iPhone)") {
        return 403;
    }
}

上述配置将屏蔽所有来自Windows桌面端LinuxMacAndroid平板iPhone以外的桌面浏览器请求。需要注意的是,这种写法是Nginx早期语法的条件判断,线上使用建议配合map指令做更规范的判断逻辑,避免在生产环境中触发过多条件判断影响性能。

屏蔽搜索引擎蜘蛛爬虫

如果网站不希望被搜索引擎收录,可以通过User-Agent过滤屏蔽主流爬虫:


server {
    listen 80;
    server_name example.com;

    if ($http_user_agent ~* "(Baiduspider|Googlebot|Yahoo! Slurp|MSNBot|Sogou spider)") {
        return 403;
    }
}

支持的爬虫包括:百度蜘蛛(Baiduspider)、谷歌蜘蛛(Googlebot)、雅虎蜘蛛(Yahoo! Slurp)、微软蜘蛛(MSNBot)、搜狗蜘蛛(Sogou spider)。配置后相关蜘蛛将无法抓取页面内容,请根据实际需求酌情使用。

屏蔽微信内置浏览器访问

微信内置浏览器发出的请求会携带MicroMessenger标识,通过以下配置可以一键屏蔽:


server {
    listen 80;
    server_name example.com;

    if ($http_user_agent ~* "MicroMessenger") {
        return 403;
    }
}

此配置适用于不希望微信内置浏览器访问的网站场景,如独立移动端应用仅允许通过系统浏览器打开的情况。

屏蔽QQ内置浏览器访问

同理,QQ内置浏览器的请求会携带QQ标识,使用以下规则即可屏蔽:


server {
    listen 80;
    server_name example.com;

    if ($http_user_agent ~* "QQ") {
        return 403;
    }
}

此规则会将所有内置QQ浏览器的访问请求返回403禁止访问,请注意部分QQ客户端可能使用其他User-Agent字符串,如需更精确屏蔽建议配合日志分析后补充。

综合配置示例

将以上所有规则合并到同一个server块中,一次性实现对电脑端、爬虫、微信和QQ的全面屏蔽:


server {
    listen 80;
    server_name example.com;

    # 屏蔽电脑端桌面浏览器
    if ($http_user_agent ~* "(Windows|Linux|Mac)") {
        return 403;
    }

    # 屏蔽搜索引擎蜘蛛
    if ($http_user_agent ~* "(Baiduspider|Googlebot|Yahoo! Slurp|MSNBot|Sogou spider)") {
        return 403;
    }

    # 屏蔽微信内置浏览器
    if ($http_user_agent ~* "MicroMessenger") {
        return 403;
    }

    # 屏蔽QQ内置浏览器
    if ($http_user_agent ~* "QQ") {
        return 403;
    }

    # 其他正常访问处理
    location / {
        root /var/www/html;
        index index.html index.htm;
    }
}

适用场景

  • 移动端H5游戏或应用页面,限制非移动设备访问
  • 需要做环境隔离的后台管理系统,防止外部电脑端访问
  • 临时屏蔽某类蜘蛛集中爬取,降低服务器负载
  • 微信公众号内禁止直接访问,强制跳转指定页面

注意事项

  • Nginx配置修改后需执行 nginx -s reload 重新加载配置
  • 频繁使用if条件判断可能影响性能,建议生产环境优先使用map指令实现
  • 返回403后用户会看到空白页面或403报错,建议同时配置错误页面让提示更友好
  • 部分伪装User-Agent的爬虫仍可绕过检测,安全限制不能完全依赖这一层

截图

图片[1]-Nginx屏蔽电脑端蜘蛛微信QQ访问教程 | 仅允许移动端设备访问配置大全-空木白博客

总结

通过Nginx的http_user_agent条件判断,可以灵活实现电脑端屏蔽、蜘蛛爬虫屏蔽、微信QQ内置浏览器屏蔽等多种访问控制需求。综合配置示例将四种规则整合到同一server块中,一行配置即可完成全面限制,适合移动端专属网站或需要做环境隔离的场景使用。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容