avatar

瓜生花子八宝粥

少壮不努力 老了看浏览器

  • 首页
  • 开源项目
  • Linux
  • Windows
  • Docker
  • 中间件
  • 数据库
主页 Nginx 限制特定客户端设备访问
文章

Nginx 限制特定客户端设备访问

发表于 2024-12-9 更新于 2024-12- 9
作者 jepwei
5~6 分钟 阅读

1. 概述

本文介绍如何通过 Nginx 配置来限制特定移动设备(如苹果系列设备)访问服务器。这种限制在某些业务场景下可能会用到,比如:

  • 针对特定设备做访问控制
  • 区分移动端和PC端的访问策略
  • 防止某些设备的恶意爬虫

2. 配置方法

2.1 基础配置

在 Nginx 的 server 块中的 location 部分添加以下配置:

# 限制 iPhone 和 iPad 设备访问
if ($http_user_agent ~* (iPhone|iPad)) {
    return 403;
}

2.2 完整示例

server {
    listen 80;
    server_name example.com;
    
    location / {
        # 设备限制
        if ($http_user_agent ~* (iPhone|iPad)) {
            return 403;
        }
        
        # 其他配置
        root /usr/share/nginx/html;
        index index.html;
    }
}

3. 配置说明

  • $http_user_agent: Nginx 内置变量,用于获取客户端 User-Agent 信息
  • ~*: 不区分大小写的正则表达式匹配
  • (iPhone|iPad): 匹配包含 iPhone 或 iPad 的 User-Agent 字符串
  • return 403: 返回 HTTP 403 禁止访问状态码

4. 注意事项

  1. 存在的局限性:
    • User-Agent 可被伪装,无法100%保证限制效果
    • 可能会影响搜索引擎爬虫的正常抓取
  2. 建议改进:
    • 建议配合其他验证方式(如 IP、Cookie 等)一起使用
    • 可以返回自定义错误页面而不是直接返回 403
    • 考虑添加白名单机制

5. 扩展配置

如需返回自定义错误页面,可以这样配置:

server {
    # ... 其他配置 ...
    
    location / {
        if ($http_user_agent ~* (iPhone|iPad)) {
            return 403 "Sorry, this service is not available on iOS devices.";
            # 或者重定向到错误页面
            # rewrite ^ /error.html break;
        }
    }
}

6. 测试验证

  1. 使用 curl 模拟 iOS 设备访问:
curl -A "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X)" http://example.com
  1. 查看 Nginx 访问日志:
tail -f /var/log/nginx/access.log

7. 参考资料

  • Nginx 官方文档
  • HTTP User Agent 列表
中间件
Nginx
许可协议: 
分享

相关文章

5月 23, 2025

nacos 部署

环境:centos7 版本:nacos-2.3.2 部署方式:编译安装 1.安装jdk (自行安装) 2.下载nacos安装包并解压 3.配置nacos的配置文件 ### 注释掉原有的端口参数再添加这个 server.port=7200 ### 开启鉴权 nacos.core.auth.enable

12月 31, 2024

容器部署fastdfs

本文详细介绍了在Docker中部署FastDFS的步骤,包括创建工作目录、配置Docker Compose、启动服务、检查端口监听以及修改Nginx配置。首先,需在主机创建FastDFS工作目录并设置权限,然后编辑docker-compose.yml文件定义服务配置。接下来,通过docker-compose命令启动服务,并使用netstat命令确认端口监听情况。最后,若需调整Nginx的8888端口配置,可进入storage容器并编辑nginx.conf文件,完成后重启容器以应用更改。

12月 24, 2024

容器部署nacos

本文详细介绍了如何在 Docker 中部署 Nacos,包括前提条件和具体步骤。首先确保已安装 Docker,然后拉取 Nacos 镜像并创建必要的目录。接着设置目录权限,复制初始配置文件到本地,重新运行 Nacos 容器。最后,用户可以通过浏览器访问 Nacos 管理界面,并可选地启用鉴权。按照这些步骤,用户将能够成功在 Docker 上部署 Nacos,并根据需求进行进一步配置。

下一篇

Nginx 静态资源站点配置

上一篇

Nginx 负载均衡配置

最近更新

  • 1panel 部署
  • jumpserver 堡垒机部署
  • ubuntu 设置时间显示为24小时制
  • pritunl vpn 部署
  • dockovpn 部署

热门标签

nacos openvpnas 资源分享 docker oracle mysql ubuntu 开源项目 虚拟化 Linux

目录

©2025 瓜生花子八宝粥. 保留部分权利。

使用 Halo 主题 Chirpy