tengine + lua 实现流量拷贝】的更多相关文章

环境搭建参考地址:http://www.cnblogs.com/cp-miao/p/7505910.html cp.lua local res1, res2, action action = ngx.var.request_method if action == "POST" then arry = {method = ngx.HTTP_POST, body = ngx.req.read_body()} else arry = {method = ngx.HTTP_GET} end i…
1. 需求 将生产环境的流量拷贝到预上线环境或测试环境,这样做有很多好处,比如: 可以验证功能是否正常,以及服务的性能: 用真实有效的流量请求去验证,又不用造数据,不影响线上正常访问: 这跟灰度发布还不太一样,镜像流量不会影响真实流量: 可以用来排查线上问题: 重构,假如服务做了重构,这也是一种测试方式: 为了实现流量拷贝,Nginx提供了ngx_http_mirror_module模块 2. 安装Nginx 首页,设置yum仓库.为此,创建一个文件/etc/yum.repos.d/nginx.…
tengine  lua 开源一 调用内部接口高效发送文件 开源自己封装的sendfile 模块,可以高效的通过lua发送文件 源码地址:https://github.com/weinyzhou/Lua-sendfile 调用方法 local sendfile=require "sendfile"; sendfile.call(filename,-1,-1); 第一个参数文件名, 第二个参数开始位置 第三个参数长度…
狂神声明 : 文章均为自己的学习笔记 , 转载一定注明出处 ; 编辑不易 , 防君子不防小人~共勉 ! 使用 Tengine+Lua+GraphicsMagick 实现图片自动裁剪缩放 需求 : 图片处理 问题 :  互联网电商网站 ( PC, 移动) 大量不同需求的图片 (同一个图片需要不同尺寸的缩略图) 解决方案(两种策略) :  在上传图片时 , 就生成所需缩略图 根据请求指定尺寸的图片自动生成相应的缩略图片 Tengine+Lua+GraphicsMagick Tengine+Lua+G…
这个功能nginx 的mirror 插件也支持,基本原理就是数据发送后端,但是不进行响应 参考图 实现方式 原始请求 getambassador.io/config: | --- apiVersion: ambassador/v0 kind: Mapping name: myservice-mapping prefix: /myservice/ service: myservice.default 流量拷贝处理(创建新的mapping) getambassador.io/config: | --…
1. 项目地址 https://github.com/buger/goreplay 2. 安装 wget https://github.com/buger/goreplay/releases/download/v0.16.1/gor_0.16.1_x64.tar.gz tar xvf gor_0.16.1_x64.tar.gz cp goreplay /usr/bin 3. 简单使用 // 测试环境使用的是nginx 有连个机器一台进行反向代理,具体的安装配置比较简单 a. 进行流量拷贝并输出到…
1. 下载源码编译 https://nginx.org/download/nginx-1.13.4.tar.gz   2. 下载依赖模块包       这里直接yum 安装 yum -y install openssl openssl-devel yum -y install pcre-devel   3. 安装    可以直接默认  ./configure  我是为了添加https 以及状态监测模块,还有四层负载均衡,比较好的地方是这个模块是 直接内置里面的. ./configure --pr…
lua当变量作为函数的参数进行传递时,类似的也是boolean,string,number类型的变量进行值传递.而table,function,userdata类型的变量进行引用传递.故而当table进行赋值操作之时,table A 赋值给table B,对表B中元素进行操作自然也会对A产生影响,当然对B表本身进行处理例如B =nil或者将表B指向另一个表,则对A是没什么影响的:下面即是对lua table的深度拷贝. deepcopy = function(object) local look…
我是在Red Hat 5.8 的虚机上安装的. Nginx的一些模块需要其他第三方库的支持,例如gzip模块需要zlib库,rewrite模块需要pcre库,ssl功能需要openssl库等.建议把这些库都安装上. 安装 PCRE PCRE(Perl兼容正则表达式,Perl Compatible Regular Expressions),一个由Philip Hazel开发的,为很多现代工具所使用的支持正则表达式的函数库. 编译Nginx时需要用到PCRE,同时Nginx的Rewrite和http…
一.介绍 二.安装 三.运行 四.开发 1.介绍 Tengine:轻量级.高性能.高并发.配置化.模块化.可扩展.可移植的Web和反向代理 服务器,Tengine是nginx超集,但做了很多优化,包含了很多比较有用的模块,比如直接包含了lua.proc等很有用的模块. Lua:一个很轻量级的 脚本,也号称性能最高的 脚本.代码总共不到600k,32个C文件,23个头文件: root@j9 ~/lua-5.1.5/src# du -sh ./ 572K    ./ root@j9 ~/lua-5.…
前言 每逢大促必压测,每逢大促必限流,这估计是电商人的常态.每次大促期间,业务流量是平时的几倍十几倍,大促期间大部分业务都会集中在购物车结算,必须限流,才能保证系统不宕机. 限流算法 限流算法一般有三种:令牌桶,漏桶,计数器.本文介绍最粗暴的计数器算法,其他算法请自行google.百度,讲的应该比我好.(能解决问题的算法都是好算法) lua 限流 业务结构 在大促期间由于流量过高,现有服务器无法承受那么大的流量,租用云服务是很好的选择. 业务架构图可以看出 ,我们的服务器有自有服务器,首都在线云…
在nginx这一层,接收到访问请求的时候,就把请求的流量上报发送给kafka storm才能去消费kafka中的实时的访问日志,然后去进行缓存热数据的统计 从lua脚本直接创建一个kafka producer,发送数据到kafka wget https://github.com/doujiang24/lua-resty-kafka/archive/master.zip yum install -y unzip unzip lua-resty-kafka-master.zip cp -rf /us…
本文链接:https://www.cnblogs.com/zhenghongxin/p/9131226.html 公司某些业务下,需要将请求的流量上报于中间件(kafka,rabbitMq等),让storm等去实时消费,进行缓存更新等热数据统计. 大概如下: wget https://github.com/doujiang24/lua-resty-kafka/archive/master.zip yum install -y unzip unzip lua-resty-kafka-master.…
-- 打印table function print_lua_table (lua_table, indent) if lua_table == nil or type(lua_table) ~= "table" then return end local function print_func(str) XLPrint("[Dongyuxxx] " .. tostring(str)) end indent = indent for k, v in pairs(lua…
http://my.oschina.net/eduosi/blog/169606…
tcpcopy项目地址:https://github.com/session-replay-tools/tcpcopy 作者地址:http://blog.csdn.net/wangbin579 1:环境描述 架设三台服务器 10.53.132.52 10.53.132.55 10.53.132.101 101我们认为是线上服务器,52和55是测试环境.我们在101上运行tcpcopy把线上流量拷贝到55,在55上我们通过路由将应答转向52,在52上把应答丢弃. 分别在101和55上部署apach…
1. 需求 将生产环境的流量拷贝到预上线环境或测试环境,这样做有很多好处,比如: 可以验证功能是否正常,以及服务的性能: 用真实有效的流量请求去验证,又不用造数据,不影响线上正常访问: 这跟灰度发布还不太一样,镜像流量不会影响真实流量: 可以用来排查线上问题: 重构,假如服务做了重构,这也是一种测试方式: 为了实现流量拷贝,Nginx提供了ngx_http_mirror_module模块 2. 安装Nginx 首页,设置yum仓库.为此,创建一个文件/etc/yum.repos.d/nginx.…
1. CentOS系统安装openresty 你可以在你的 CentOS 系统中添加 openresty 仓库,这样就可以便于未来安装或更新我们的软件包(通过 yum update 命令).运行下面的命令就可以添加我们的仓库: $ sudo yum install yum-utils $ sudo yum-config-manager --add-repo https://openresty.org/package/centos/openresty.repo 然后就可以像下面这样安装软件包,比如…
user apache apache; worker_processes 4; worker_rlimit_nofile 100000; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { use epoll; multi_accept on; worker_connections 51200; } #…
http://www.cocos2d-x.org/docs/manual/framework/native/v2/lua/lua-remote-debug-via-zerobrane/zh ZeroBrane Studio做为一个轻量级的Lua IDE,因为它支持跨平台(支持Windows.Mac和Linux)和支持真机调试(Andorid.IPhone和IPad),所以经常被用来调试Lua.目前,Cocos2d-x通过集成LuaSocket也支持应用ZeroBrane Studio进行测试例的…
- 假设我们要上线一个两年内不会宕机的先进架构.在上线前,免不了单元测试,功能测试,还有使用ab,webbench等等进行压力测试. 但这些步骤非生产环境下正式用户的行为.或许你会想到灰度上线,但毕竟可能会影响到部分用户,这怎么对得起我们两年内不宕机的承诺呢? 好在网易的 王斌 开发了tcpcopy, 可以导入线上流量进行功能和压力测试. tcpcopy介绍 tcpcopy是一种请求复制工具.可以将线上流量拷贝到测试机器,实时的模拟线上环境.在不影响线上用户的情况下,使用线上流量进行测试,以尽早…
准备工作: 1. 拷贝cocos2d-x-3.3rc0\external\lua整个文件夹到项目中(如myProject\cocos2d\external\lua) 2. 拷贝cocos2d-x-3.3rc0\cocos\scripting整个文件夹到项目中(如myProject\cocos2d\cocos\scripting) VS工程配置: 1. 解决方案中添加刚拷贝过来的libluacocos2d项目(添加现有项目: myProject\cocos2d\cocos\scripting\lu…
goreplay 是一个很不错的流量拷贝,复制工具,小巧,支持一些扩展,当然也提供了企业版,企业版 功能更强大,支持二进制协议的分析 . 为了方便数据的存储,我们可以使用es 进行存储 环境准备 docker-compose   version: "3" services:    nginx:      build: ./      ports:      - "8080:80"    app:      image: openresty/openresty:alp…
goreplay 是一个很不错的流量拷贝,复制工具,小巧,支持一些扩展,当然也提供了企业版,企业版 功能更强大,支持二进制协议的分析 备注: 演示使用docker-compose 运行,测试镜像流量到其他的两个web app (openresty) 环境准备 docker-compose 文件   version: "3" services:    nginx:      build: ./      ports:      - "8080:80"    app:…
quick-cocos2d-x + Lua 开发      quick-cocos2d-x + Lua 开发 首页在Eclipse中搭建quick-cocos2d-x的lua开发环境. 1. 首先需要给eclipse装一个lua的plugin(google之), 或者直接下载ldt集成开发环境(http://www.eclipse.org/koneki/ldt/), 目前稳定版本是0.9. 2.通过git工具clone: https://github.com/dualface/quick-coc…
转自:http://ju.outofmemory.cn/entry/95358 本文主要介绍如何在Windows平台利用VS搭建C++/Lua开发环境.这里的“C++/Lua开发环境”主要指的是C++调用Lua,以及Lua调用C++.Mac平台相对会比较方便,但是VS也不是很麻烦就是了.Mac上利用XCode搭建的教程可以参考子龙山人的教程,当然也可以利用其他IDE,比如Eclipse+CDT+LDT来搭建,这都没有问题. 另外,本文不谈及Lua/C++的交互,相关内容可以参考<Lua程序设计>…
一.使用背景 gor 是一款go语言实现的简单的http流量复制工具,它的主要目的是使你的生产环境HTTP真实流量在测试环境和预发布环境重现.只需要在 代理例如nginx入口服务器上执行一个进程,就可以把生产环境的流量复制到任何地方, 完美解决了HTTP 层实时流量复制和压力测试的问题.常见的HTTP流量copy工具还有另外一款tcpcopy.将机器A上的http请求复制转发到指定机器B上去, 通过线上流量复制引流,通过将真实请求流量放大N倍来进行压测,能对服务有一个较为全面的检验. 二.安装…
-----------------------------------------------------推荐技术----------------------------------------------------- 1.伯乐在线https://github.com/jobbole 2.当当网 https://github.com/dangdangdotcom/ elastic-job:分布式作业调度框架 dubbox:阿里dubbo增强版 sharding-jdbc:数据库分表分库,在JD…
流量拷贝工具试用 https://github.com/buger/goreplaynginx mirror openresty 通过lua tcpcopy 支持 HTTP 请求的录制和重放,可以在线上录制请求,在测试环境进行重放.支持 HTTP 层面的流量过滤,可以只挑选我们感兴趣的流量.支持请求放大,用于性能测试. GoReplay is an open-source tool for capturing and replaying live HTTP traffic into a test…
Nginx流量复制# 需求# 将生产环境的流量拷贝到预上线环境或测试环境,这样做有很多好处,比如: 可以验证功能是否正常,以及服务的性能: 用真实有效的流量请求去验证,又不用造数据,不影响线上正常访问: 这跟灰度发布还不太一样,镜像流量不会影响真实流量: 可以用来排查线上问题: 重构,假如服务做了重构,这也是一种测试方式: 为了实现流量拷贝,Nginx提供了ngx_http_mirror_module模块 安装Nginx# 首页,设置yum仓库.为此,创建一个文件/etc/yum.repos.d…