nginx一些常用user_agent的匹配规则详解

 更新时间:2025年07月19日 15:30:22   作者:yuan19997  
Nginx通过map模块可高效匹配user_agent,实现变量设置、访问控制、重定向等操作,如识别移动设备、拦截爬虫、区分浏览器类型,相比if指令,map模块更利于性能优化与规则精准管理

nginx常用user_agent匹配规则

nginx可以使用 map模块来实现user_agent的匹配规则,根据不同的user_agent设置不同的变量或执行不同的操作。

以下是一些常用的user_agent匹配规则示例:

判断是否为移动设备

map $http_user_agent $is_mobile {
    default 0;
    ~*mobile 1;
    ~*Android 1;
    ~*iPhone 1;
    ~*iPad 1;
}

这个规则将会判断用户的user_agent中是否包含"mobile"、"Android"、"iPhone"或"iPad"等关键词,若包含,则将$is_mobile变量设为1,否则设为0。

拒绝某些特定的user_agent

if ($http_user_agent ~* (Baiduspider|Googlebot|bingbot)) {
    return 403;
}

这个规则将会拒绝来自百度、谷歌和必应的爬虫访问,直接返回403禁止访问状态码。

设置变量根据user_agent进行条件判断

map $http_user_agent $browser {
    default "Unknown";
    ~*MSIE "Internet Explorer";
    ~*Firefox "Mozilla Firefox";
    ~*Chrome "Google Chrome";
    ~*Safari "Apple Safari";
}

这个规则将会根据user_agent的不同设置$browser变量,用于后续的操作。

根据user_agent重定向到不同的URL

if ($http_user_agent ~* (Android|iPhone|iPad)) {
    rewrite ^/$ /mobile/ permanent;
}

这个规则将会根据user_agent中是否包含"Android"、"iPhone"或"iPad"等关键词,将根目录的访问重定向到/mobile/目录下。

需要注意的是:

  • 使用if指令可能会导致性能下降,建议尽量使用map模块进行user_agent的匹配。
  • 在编写规则时,应该确保匹配规则的准确性,以免误判或产生意外的结果。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Nginx防御DDOS攻击的配置方法教程

    Nginx防御DDOS攻击的配置方法教程

    Nginx是一款轻量级的Web服务器,由俄罗斯的程序设计师Igor Sysoev所开发,最初供俄国大型的入口网站及搜寻引Rambler使用。 下面这篇文章主要给大家介绍了关于Nginx防御DDOS攻击的配置方法,需要的朋友可以参考下。
    2017-07-07
  • Nginx中split_clients模块的使用

    Nginx中split_clients模块的使用

    split_clients模块可以轻松地实现A/B测试,本文主要介绍了Nginx中split_clients模块的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-06-06
  • 504 Gateway Timeout网关超时详细解决方法

    504 Gateway Timeout网关超时详细解决方法

    这篇文章主要介绍了504 Gateway Timeout网关超时详细解决方法的相关资料,504GatewayTimeout是HTTP状态码,表示网关或代理服务器在等待上游服务器响应时超时,常见触发场景包括Nginx超时、后端性能问题、网络延迟和服务器资源耗尽,需要的朋友可以参考下
    2025-02-02
  • nginx实现一个域名配置多个laravel项目的方法示例

    nginx实现一个域名配置多个laravel项目的方法示例

    这篇文章主要介绍了nginx实现一个域名配置多个laravel项目的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-01-01
  • Keepalived搭建nginx高可用的实现

    Keepalived搭建nginx高可用的实现

    这篇文章主要介绍了Keepalived搭建nginx高可用的实现,通过VIP实现主备切换,检测进程状态确保服务可用,具有一定的参考价值,感兴趣的可以了解一下
    2025-05-05
  • Nginx路由匹配规则及优先级详解

    Nginx路由匹配规则及优先级详解

    Nginx作为一个高性能的Web服务器和反向代理服务器,广泛用于负载均衡、请求转发等场景,在配置Nginx时,路由匹配规则是非常重要的概念,本文将详细介绍Nginx的路由匹配规则及其优先级,需要的朋友可以参考下
    2025-05-05
  • Nginx反向代理中出现502错误的解决步骤

    Nginx反向代理中出现502错误的解决步骤

    反向代理是一种服务器代理的方式,它代理了客户端的请求并将请求转发给后端服务器,然后将后端服务器的响应返回给客户端,但经常会遇到502错误,所以本文给大家介绍了Nginx反向代理中出现502错误的解决步骤,需要的朋友可以参考下
    2025-03-03
  • 永中文档在线转换预览基于nginx配置部署方案

    永中文档在线转换预览基于nginx配置部署方案

    这篇文章主要为大家介绍了永中文档在线转换预览基于nginx配置部署方案的实现,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • nginx编译安装及常用参数详解

    nginx编译安装及常用参数详解

    这篇文章主要介绍了nginx编译安装及常用参数详解,一种是基于ansible role实现编译安装nginx以及编译安装参数详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-01-01
  • Nginx中IF语句实现数学比较功能

    Nginx中IF语句实现数学比较功能

    这篇文章主要介绍了Nginx中IF语句实现数学比较功能,即在Nginx中用if判断数字大小,类似编程语言中的逻辑比较,需要的朋友可以参考下
    2015-02-02

最新评论