0

0

Nginx反向代理中基于设备及浏览器指纹的ACL配置

PHPz

PHPz

发布时间:2023-06-10 13:13:40

|

1345人浏览过

|

来源于php中文网

原创

随着移动互联网和多终端设备的普及,网站的访问方式和设备类型也越来越丰富。为了保障网站的稳定性和安全性,网站服务器需要进行反向代理,同时也需要对不同设备和浏览器类型进行限制,这就需要使用nginx反向代理中基于设备及浏览器指纹的acl配置。

什么是Nginx反向代理?

Nginx反向代理是一种服务器作为客户端来访问其他服务器资源的代理方式。简单来说,就是在客户端和服务器之间增加一道代理服务器,客户端向代理服务器请求资源,代理服务器再向真正的服务器请求资源,然后将请求结果返回给客户端。这种方式可以有效减轻服务器的压力,提高网站的性能和可靠性。

Nginx反向代理中的ACL配置

ACL(Access Control List,访问控制列表)是Nginx反向代理中的一种功能,用于根据客户端请求的IP地址、请求方法、URL等条件进行过滤和限制。在ACL中,我们还可以根据设备类型和浏览器类型进行限制。

由于不同设备和浏览器类型的渲染方式和规范不同,我们可以根据这些特征来做出不同的响应,如提供不同的页面结构、样式或资源。同时,也可以通过ACL配置来限制某些设备或浏览器的请求,提高网站的安全性和稳定性。

基于设备及浏览器指纹的ACL配置

现在的设备和浏览器类型实在是太多了,要一个一个手动配置显然不现实。但是幸运的是,Nginx反向代理提供了第三方模块deviceatlas,我们可以通过这个模块来自动识别设备及浏览器类型。

安装deviceatlas模块

以CentOS为例,先安装必要的依赖:

sudo yum install gcc-c++ pcre-devel zlib-devel

然后下载deviceatlas模块,解压并执行安装:

sudo wget -O ~/deviceatlas.tar.gz https://github.com/devicedetection/device-nginx/archive/master.tar.gz
sudo tar zxvf ~/deviceatlas.tar.gz -C ~/
cd ~/device-nginx-master
sudo ./configure --add-module=$PWD
sudo make && sudo make install

经过上述步骤,我们就可以在Nginx中使用deviceatlas模块了。

Copy.ai
Copy.ai

Copy.ai 是一个人工智能驱动的文案生成器

下载

配置Nginx反向代理

在Nginx配置文件中,加入以下配置:

http {

deviceatlas /usr/share/devicedata/51Degrees.dat;

map $device_is_mobile $acl {
    ""               block_ua;
    "true"           allow;
    "false"          block_ua;
}

map $device_brand_name $brand_map {
     "~Huawei"       "huawei.com";
     "~Samsung"      "samsung.com";
     "~Apple"        "apple.com";
     default         "default.com"
}

server {
    listen       80;
    server_name  server.com;

    location / {
        if ($acl = "allow") {
            proxy_pass http://backend;
        }
        if ($acl = "block_ua") {
            return 403;
        }
    }

    location /brand {
        proxy_pass http://$brand_map;
    }
}

}

解析以上配置:

先使用deviceatlas模块加载设备信息文件;

使用map指令将设备分类为“移动端”和“非移动端”,未识别的设备视为非移动端,设备分类后,我们就可以方便地根据不同设备类型做出不同响应;

使用另一个map指令将设备品牌名映射到对应的后端服务器域名上;

在Nginx反向代理服务器上,使用location指令匹配请求URL,若当前请求来自移动设备,则允许代理请求;若当前请求来自未知设备或非移动设备,则不允许代理请求;

在请求指定URL时,若请求来自移动设备且品牌为Huawei、Samsung、Apple,则将请求代理到对应的服务器上;反之,如果请求来自未知设备或非移动设备或品牌未匹配到任何一项,则将请求代理到默认服务器上。

总结

基于设备及浏览器指纹的ACL配置,可以帮助Nginx反向代理服务器实现对多样化访问设备和多样化访问方式的筛选和响应。Nginx反向代理服务器可以通过使用deviceatlas模块自动识别设备品牌、型号和浏览器类型,并根据特定条件做出相应的ACL配置,从而提高网站的性能、安全性和稳定性。

相关专题

更多
高德地图升级方法汇总
高德地图升级方法汇总

本专题整合了高德地图升级相关教程,阅读专题下面的文章了解更多详细内容。

43

2026.01.16

全民K歌得高分教程大全
全民K歌得高分教程大全

本专题整合了全民K歌得高分技巧汇总,阅读专题下面的文章了解更多详细内容。

84

2026.01.16

C++ 单元测试与代码质量保障
C++ 单元测试与代码质量保障

本专题系统讲解 C++ 在单元测试与代码质量保障方面的实战方法,包括测试驱动开发理念、Google Test/Google Mock 的使用、测试用例设计、边界条件验证、持续集成中的自动化测试流程,以及常见代码质量问题的发现与修复。通过工程化示例,帮助开发者建立 可测试、可维护、高质量的 C++ 项目体系。

24

2026.01.16

java数据库连接教程大全
java数据库连接教程大全

本专题整合了java数据库连接相关教程,阅读专题下面的文章了解更多详细内容。

35

2026.01.15

Java音频处理教程汇总
Java音频处理教程汇总

本专题整合了java音频处理教程大全,阅读专题下面的文章了解更多详细内容。

16

2026.01.15

windows查看wifi密码教程大全
windows查看wifi密码教程大全

本专题整合了windows查看wifi密码教程大全,阅读专题下面的文章了解更多详细内容。

56

2026.01.15

浏览器缓存清理方法汇总
浏览器缓存清理方法汇总

本专题整合了浏览器缓存清理教程汇总,阅读专题下面的文章了解更多详细内容。

16

2026.01.15

ps图片相关教程汇总
ps图片相关教程汇总

本专题整合了ps图片设置相关教程合集,阅读专题下面的文章了解更多详细内容。

9

2026.01.15

ppt一键生成相关合集
ppt一键生成相关合集

本专题整合了ppt一键生成相关教程汇总,阅读专题下面的的文章了解更多详细内容。

26

2026.01.15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
进程与SOCKET
进程与SOCKET

共6课时 | 0.3万人学习

nginx浅谈
nginx浅谈

共15课时 | 0.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号