Nginx+Lua 推荐两个开源项目

简介: 本文的原文连接是: http://blog.csdn.net/freewebsys/article/details/51549586 未经博主允许不得转载。 博主地址是:http://blog.csdn.net/freewebsys1,Nginx+Luanginx+lua 还是非常好等东西。 首先nginx非常快,在加上lua开发速度快。 两个完美

本文的原文连接是: http://blog.csdn.net/freewebsys/article/details/51549586 未经博主允许不得转载。
博主地址是:http://blog.csdn.net/freewebsys

1,Nginx+Lua


nginx+lua 还是非常好等东西。
首先nginx非常快,在加上lua开发速度快。
两个完美的结合。发现两个项目,对于系统上线,运维有好处。

2,ABTestingGateway


nginx 是目前使用较多的7层服务器,可以实现高性能的转发和响应;ABTestingGateway 是在 nginx 转发的框架内,在转向 upstream 前,根据 用户请求特征 和 系统的分流策略 ,查找出目标upstream,进而实现分流。

http://www.oschina.net/p/abtestinggateway
实现灰度发布的nginx+lua开发的项目。

项目放到github上面了。
https://github.com/CNSRE/ABTestingGateway

3,ngx_lua_waf


开发的一个基于ngx_lua的web应用防火墙
找到一个
http://www.open-open.com/lib/view/1423472640076

github项目地址:
https://github.com/loveshell/ngx_lua_waf

4,增加cc拦截


最后找到cc拦截的代码,其实很简单:

--获得真实IP。
function getClientIp()
    IP  = ngx.var.remote_addr
    if IP == nil then
        IP  = "unknown"
    end
    return IP
end
--"100/60"
--设置cc攻击频率,单位为秒.
local uri = ngx.var.uri
local cc_count = 100
local cc_seconds = 60
local token = getClientIp() .. uri
local limit = ngx.shared.limit
local req, _ = limit:get(token)
if req then
    if req > cc_count then
        ngx.exit(503)
        return true
    else
        limit:incr(token, 1)
    end
else
    limit:set(token, 1, cc_seconds)
end

把这个代码放到一个lua文件里面就可以增加防cc攻击模块了。
可以防些简单的攻击。

5,总结


lua还是非常强大的,代码开发速度快。
在nginx上面可以做很多事情,好好的将系统保护起来。

本文的原文连接是: http://blog.csdn.net/freewebsys/article/details/51549586 未经博主允许不得转载。
博主地址是:http://blog.csdn.net/freewebsys

目录
相关文章
|
7月前
浅谈基于openresty(nginx+lua)开发轻量级,按流量控制的灰度模块(下)
浅谈基于openresty(nginx+lua)开发轻量级,按流量控制的灰度模块
79 0
|
6月前
|
算法 NoSQL Java
分布式接口幂等性、分布式限流(Guava 、nginx和lua限流)
接口幂等性就是用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生了副作用。举个最简单的例子,那就是支付,用户购买商品后支付,支付扣款成功,但是返回结果的时候网络异常,此时钱已经扣了,用户再次点击按钮,此时会进行第二次扣款,返回结果成功,用户查询余额返发现多扣钱了,流水记录也变成了两条,这就没有保证接口的幂等性。
|
7月前
|
缓存 NoSQL 应用服务中间件
基于Nginx+Lua优化多级缓存架构
基于Nginx+Lua优化多级缓存架构
116 0
|
7月前
|
负载均衡 应用服务中间件 测试技术
浅谈基于openresty(nginx+lua)开发轻量级,按流量控制的灰度模块(上)
浅谈基于openresty(nginx+lua)开发轻量级,按流量控制的灰度模块
268 0
|
缓存 算法 前端开发
网站流量日志埋点收集—后端脚本(nginx+lua)|学习笔记
快速学习网站流量日志埋点收集—后端脚本(nginx+lua)
491 0
网站流量日志埋点收集—后端脚本(nginx+lua)|学习笔记
|
数据采集 大数据 应用服务中间件
Nginx 集成 lua 脚本|学习笔记
快速学习 Nginx 集成 lua 脚本
1201 0
Nginx 集成 lua 脚本|学习笔记
|
数据采集 缓存 NoSQL
Nginx 通过 Lua + Redis 实现动态封禁 IP
Nginx 通过 Lua + Redis 实现动态封禁 IP
267 0
Nginx 通过 Lua + Redis 实现动态封禁 IP
|
缓存 NoSQL 应用服务中间件
nginx安装配置Lua模块的支持
nginx安装配置Lua模块的支持
|
应用服务中间件 nginx C语言
Nginx集成Lua实现根据POST请求报文内容自定义负载策略
上游服务调用下游服务的接口,部分接口业务高峰期请求量大,下游服务器压力很大,会影响到其它接口的访问。如果通过增加下游服务器横向扩容会增加成本,且在业务高峰期还是有可能影响其他接口。所以需要使用Lua配置一种可以根据报文内容进行负载的策略(调用接口的URL是固定的,下游服务通过解析报文调用对应接口)。
538 0
|
缓存 JSON NoSQL
Lua+OpenResty+nginx+redis+canal实现缓存策略
Lua+OpenResty+nginx+redis+canal实现缓存策略
691 0
Lua+OpenResty+nginx+redis+canal实现缓存策略