2017
09-22
09-22
Nginx 通过 Lua + Redis 实现动态封禁 IP
一、背景为了封禁某些爬虫或者恶意用户对服务器的请求,我们需要建立一个动态的IP黑名单。对于黑名单之内的IP,拒绝提供服务。二、架构实现IP黑名单的功能有很多途径:1、在操作系统层面,配置iptables,拒绝指定IP的网络请求;2、在WebServer层面,通过Nginx自身的deny选项或者lua插件配置IP黑名单;3、在应用层面,在请求服务之前检查一遍客户端IP是否在黑名单。为了方...
继续阅读 >
Redis提供了5种数据结构,但除此之外,Redis还提供了注入慢查询分析,RedisShell、Pipeline、事务、与Lua脚本、Bitmaps、HyperLogLog、PubSub、GEO等附加功能,这些功能可以在某些场景发挥很重要的作用.慢查询分析许多存储系统(如:MySQL)提供慢查询日志帮助开发与运维人员定位系统存在的慢操作.所谓慢查询日志就是系统在命令执行前后计算每条命令的执行时间,当超过预设阈值,就将这条命令的相关信息(例...
前言一般而言,现在互联网应用(网站或App)的整体流程,可以概括如图1所示,用户请求从界面(浏览器或App界面)到网络转发、应用服务再到存储(数据库或文件系统),然后返回到界面呈现内容。随着互联网的普及,内容信息越来越复杂,用户数和访问量越来越大,我们的应用需要支撑更多的并发量,同时我们的应用服务器和数据库服务器所做的计算也越来越多。但是往往我们的应用服务器资源是有限的,且技术变革是缓慢的,数...
在开发界有一个长期引起争议的说法,那就是所谓的10x程序员是否存在?这个说法是Brooks,F.P在《没有银弹》中首次提出的,他认为在普通设计师(程序员)和优秀设计师(程序员)之间,有着10倍多的差异。对于10x程序员是否存在这个问题,开源键值存储数据库系统Redis的开发者antirez(SalvatoreSanfilippo)认为,如果把编程工作看作是一门“非线性”学科的话,那么不仅存在10x程序员,甚至连100x程序员这种异兽都有,同...
redis主从复制过程:当配置好slave后,slave与master建立连接,然后发送sync命令。无论是第一次连接还是重新连接,master都会启动一个后台进程,将数据库快照保存到文件中,同时master主进程会开始收集新的写命令并缓存。后台进程完成写文件后,master就发送文件给slave,slave将文件保存到硬盘上,再加载到内存中,接着master就会把缓存的命令转发给slave,后续master将收到的写命令发送给slave。如果master同时收到...
前些天简单学习了下Redis,现在准备在项目上使用它了。我们目前用的是Yii2框架,在官网搜索了下Redis,就发现了yii2-redis这扩展。安装后使用超简单,打开common/config/main.php文件,修改如下。'cache'=>[//'class'=>'yii\caching\FileCache','class'=>'yii\redis\Cache',],'redis'=>['class'=>'yii\redis\Connection','hostname'=>'localhost','port'=>6379,'database'=>0,],...
Windows下安装Redis参考这篇文章:Windows下安装使用Redis及其PHP扩展1、将启动命令写入批处理文件createredis.bat(路径以自己的安装路径为准):E:\tools\redis\32bit\redis-server.exeE:\tools\redis\32bit\redis.conf2、利用vbs调用bat(路径以自己保存的createredis.bat路径为准):新建一个vbs文件openredis.vbs:CreateObject("WScript.Shell").Run"cmd/cE:\bat\createredis.bat",0接下来就是如何调用vbs了,我采...
CDNCDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。其目的是使用户可就近取得所需内容,解决Internet网络拥挤的状况,提高用户访问网站的响应速度。对于大规模电子商务平台一般需要建CDN做网络加速,大型平台如淘宝、京东都采用自建CDN,中小型的企业可以采用第三方CDN厂商合作,如蓝汛、网宿、快网等。当然在选择CDN厂商时,需要考...
1、windows下安装redis并测试redis下载地址:https://github.com/dmajkic/redis/downloads下载到的Redis支持32bit和64bit。根据自己实际情况选择,我选择32bit。把32bit文件内容拷贝到需要安装的目录下,比如:D:\dev\redis-2.4.5。打开一个cmd窗口,使用cd命令切换到指定目录(D:\dev\redis-2.4.5)运行redis-server.exeredis.conf。运行以后出现如下界面:这就说明Redis服务端已经安装成功。重新打开一个cmd窗口,使用cd...