Nginx 通过 Lua + Redis 实现动态封禁 IP

一、背景 为了封禁某些爬虫或者恶意用户对服务器的请求,我们需要建立一个动态的 IP 黑名单。对于黑名单之内的 IP ,拒绝提供服务。 二、架构 实现 IP 黑名单的功能有很多途径: 1、在操作系统层面,配置 iptables,拒绝指定 IP 的网络请求; 2、在 Web Server 层面,通过 Nginx 自身的 deny 选项 或者 lua 插件 配置 IP 黑名单; 3、在应用层面,在请求服 …

京东三级列表页持续架构优化—Golang+Lua(OpenResty) 最佳实践

作者:谢刚,京东商城架构师,负责京东分类列表、凤凰等系统的架构开发工作;之前在搜狐视频负责 UGC 视频架构开发工作。 *** 招聘:京东列表页目前有 Java、Golang、Lua(OpenResty)、数据挖掘等职位,欢迎投简历到 xiegang@jd.com,期待与您的合作 *** 承接上篇《京东三级列表页持续架构优化—前端优化实践》。 分类列表入口 分类列表入口,可以通过京东首页首屏左侧导 …

基于 OpenResty 和 Node.js 的微服务架构实践

什么是微服务? 传统的单体服务架构是单独服务包,共享代码与数据,开发成本较高,可维护性、伸缩性较差,技术转型、跨语言配合相对困难。而微服务架构强调一个服务负责一项业务,服务可以单独部署,独立进行技术选型和开发,服务间松耦合,服务依赖的数据也独立维护管理。虽然微服务存在部署复杂、运维难度较大、分布式事务控制难、容错要求高等缺点,但总体而言,微服务的优点远大于其复杂性。 微服务架构需要注意哪些问题? …