如何配置Nginx针对iOS、Android等不同移动操作系统下发差异化命中的静态资源加速包?
- 内容介绍
- 文章标签
- 相关推荐
本文共计844个文字,预计阅读时间需要4分钟。
核心是识别客户端系统类型,Nginx本身不解析UA字符串,但可通过map指令做轻量级映射。直接在http块中定义变量,避免每次location中重复正则匹配:
map $http_user_agent $os_type { default "web"; ~*iPhone|iPad|iPod "ios"; ~*Android "android"; }
注意两点:一是 map 必须在 http 级,不能放在 server 或 location 内;二是正则要加 ~* 表示忽略大小写,否则部分 Android UA(如带大写 “ANDROID”)会漏匹配。
按 $os_type 切换静态资源根目录
有了变量,就能用 root 或 alias 动态指定文件路径。
本文共计844个文字,预计阅读时间需要4分钟。
核心是识别客户端系统类型,Nginx本身不解析UA字符串,但可通过map指令做轻量级映射。直接在http块中定义变量,避免每次location中重复正则匹配:
map $http_user_agent $os_type { default "web"; ~*iPhone|iPad|iPod "ios"; ~*Android "android"; }
注意两点:一是 map 必须在 http 级,不能放在 server 或 location 内;二是正则要加 ~* 表示忽略大小写,否则部分 Android UA(如带大写 “ANDROID”)会漏匹配。
按 $os_type 切换静态资源根目录
有了变量,就能用 root 或 alias 动态指定文件路径。

