openresty

OpenResty — Nginx全能插件版

笑着哭i 提交于 2019-11-29 03:35:16
官网: http://openresty.org/ 虽然是中国人做的,但没几个汉字..... 我用Nginx,是这样一个过程: 1. 系统rpm中的nginx,能让其跑起来 2. 玩配置文件 3. 玩编译选项 4. 写插件,集成第三方插件 OpenResty , 是淘宝一位大牛(agentzh)集成的包含N多好插件的Nginx捆绑源码包,这位仁兄自称Nginx最活跃的第三方模块开发人员哦 下面,当然要列一下到底集成了什么模块: LuaJIT -- 极速版Lua实现 ArrayVarNginxModule -- 数组类型的Nginx变量 AuthRequestNginxModule -- 鉴权,想象一下以C代码的速度判断一个请求是否合法,是不是很有快感呢?! DrizzleNginxModule -- Nginx-MySQL桥,非阻塞的哦,我又爱又恨的一个模块,值得注意的是,其响应是RDS流 EchoNginxModule -- 以非常直观的方式在Nginx配置文件中编写简单的处理逻辑,源码包含大量注释,绝对是入门好例子!! EncryptedSessionNginxModule -- 加密会话 FormInputNginxModule -- 解析post请求中的参数,这下子,简单请求根本不需要PHP/Java来处理啦 HeadersMoreNginxModule --

ubuntu django web服务器部署

谁说胖子不能爱 提交于 2019-11-29 00:57:44
1.在ubuntu14.04上 安装pip3 https://bootstrap.pypa.io/get-pip.py python3 get-pip.py 2.安装django 最新版 pip3 install django 3.修改django 支持中文 在settings.py 设置 LANGUAGE_CODE = 'zh-Hans' 4.修改系统支持中文,同时也可解决软件源中找不到个别软件的问题 apt-get install language-pack-zh-hans* apt-get update 5.安装虚拟环境 ~/djangogirls$ sudo apt-get install python-virtualenv ~/djangogirls$ virtualenv --python=python3.4 venv 6. 使用虚拟环境 上面的命令将创建一个名为 venv 目录 (或任何你选择的名字),其中包含我们的虚拟环境 (基本上是一堆的目录和文件)。 ~/djangogirls$ source venv/bin/activate 7. 安装web服务器 openresty 安装指导 8.安装uwsgi 在虚拟环境下安装,适合不同版本的python ,安装后uwsgi 在虚拟环境的bin目录下 pip install uwsgi 如果报错 fatal error:

openresty开发系列24--openresty中lua的引入及使用

纵饮孤独 提交于 2019-11-29 00:10:12
openresty开发系列24--openresty中lua的引入及使用 openresty 引入 lua 一)openresty中nginx引入lua方式 1)xxx_by_lua --->字符串编写方式 2) xxx_by_lua_block ---->代码块方式 3) xxx_by_lua_file ---->直接引用一个lua脚本文件 我们案例中使用内容处理阶段,用content_by_lua演示 -----------------编辑nginx.conf----------------------- 第一种:content_by_lua location /testlua { content_by_lua "ngx.say('hello world')"; } 输出了hello world content_by_lua 方式,参数为字符串,编写不是太方便。 ---------------------------------------- 第二种:content_by_lua_block location /testlua { content_by_lua_block { ngx.say("hello world"); } } content_by_lua_block {} 表示内部为lua块,里面可以应用lua语句 ----------------------------

openresty开发系列21--lua的模块

生来就可爱ヽ(ⅴ<●) 提交于 2019-11-29 00:06:22
openresty开发系列21--lua的模块 从lua5.1开始,Lua 加入了标准的模块管理机制,Lua 的模块是由变量、函数等已知元素组成的 table, 因此创建一个模块很简单,就是创建一个 table,然后把需要导出的常量、函数放入其中,最后返回这个 table 就行。 一)模块定义 模块的文件名 和 模块定义引用名称要一致 -- 文件名为 model.lua -- 定义一个名为 model 的模块 model = {} -- 定义一个常量 model.constant = "这是一个常量" -- 定义一个函数 function model.func1() print("这是一个公有函数") end local function func2() print("这是一个私有函数!") end function model.func3() func2() end return model 二)require 函数 Lua提供了一个名为require的函数用来加载模块。要加载一个模块,只需要简单地调用就可以了。例如: require("<模块名>") 或者 require "<模块名>" 执行 require 后会返回一个由模块常量或函数组成的 table,并且还会定义一个包含该 table 的全局变量。 -- test_model.lua 文件 -- model

OpenResty搭建游戏服务器(三)使用protobuf

房东的猫 提交于 2019-11-28 21:56:35
lua 的 protobuf 库 之前一直用的 云风的pbc ,一直用的很嗨皮。 但这个库好像已经不怎么维护了,而我想要的是支持 proto3。 最终我找到 lua-protobuf 这个库。 1、下载库并将 pb.c 和 pb.h 编译成 pb.so git clone https://github.com/starwing/lua-protobuf cd lua-protobuf gcc -O2 -shared -fPIC pb.c -o pb.so 如果报错,fatal error: lua.h: No such file or directory 则要通过 gcc -I 来指定 头文件查找路径 gcc -O2 -shared -fPIC pb.c -o pb.so -I /usr/local/openresty/luajit/include/luajit-2.1 2、把需要的文件放入openresty中 把 “用于对数据进行encode、decode” 的 pb.so 文件放入 openresty 的 luaclib 。 把 “用于编译 .proto 文件” 的 protoc.lua 文件放入 openresty的 lualib。 (可选) 3、准备具体业务要用的协议文件(.proto文件) 这里,为了先跑通流程,只定义登录需要的协议(两个.proto 文件)。 /

filebeat->redis->logstash->elasticsearch->kibana

☆樱花仙子☆ 提交于 2019-11-28 20:06:36
整体流程 filebeat收集openresty应用日志传输到Redis集群中 Logstash从Redis集群中拉取数据,并传输到Elasticsearch集群 使用Kibana可视化索引 使用Elasticsearch-head管理lasticsearch集群 注:Logstash不支持集群模式 环境 均为CentOS 7.4 x64系统 openresty 192.168.0.10 1.15.8版本 filebeat 192.168.0.10 7.3.0版本 Redis集群 192.168.0.11 6381-6386端口(暂采用伪集群的方式) 5.0.5版本 Logstash 192.168.0.12 7.3.0版本 Elasticsearch集群 192.168.0.13-15 7.3.0版本 Kibana 192.168.0.16 7.3.0版本 Elasticsearch-head 192.168.0.17 软件下载地址 filebeat|Logstash|Elasticsearch|Kibana: https://www.elastic.co/cn/downloads/past-releases#elasticsearch Elasticsearch-head: https://github.com/mobz/elasticsearch-head Redis:

lua学习post请求转发

穿精又带淫゛_ 提交于 2019-11-28 20:01:55
lua学习根据get/post请求转发 首先需要安装openresty,集成了nginx和lua。lua可以用从文件中运行,可以通过代码块允许,本次使用从文件中运行。 #手机POS交易 upstream mobileAndPos{ server 127.0.0.1:8081 ; } location /openresty/file { set $backend ''; rewrite_by_lua_file /usr/local/openresty/nginx/conf/post_by_lua.lua; proxy_pass http://$backend; } [root@localhost conf]# cat post_by_lua.lua local request_method = ngx.var.request_method local args = nil if "GET" == request_method then args = ngx.req.get_uri_args() elseif "POST" == request_method then ngx.req.read_body() args = ngx.req.get_post_args() end local service = args["service"]; if service == nil or

使用NGINX+LUA实现WAF功能

那年仲夏 提交于 2019-11-28 19:16:47
使用NGINX+LUA实现WAF功能 一、了解WAF 1.1 什么是WAF Web应用防护系统(也称:网站应用级入侵防御系统 。英文:Web Application Firewall,简称: WAF)。利用国际上公认的一种说法:Web应用 防火墙 是通过执行一系列针对HTTP/HTTPS的 安全策略 来专门为Web应用提供保护的一款产品。 1.2 WAF的功能 支持IP白名单和黑名单功能,直接将黑名单的IP访问拒绝。 支持URL白名单,将不需要过滤的URL进行定义。 支持User-Agent的过滤,匹配自定义规则中的条目,然后进行处理(返回403)。 支持CC攻击防护,单个URL指定时间的访问次数,超过设定值,直接返回403。 支持Cookie过滤,匹配自定义规则中的条目,然后进行处理(返回403)。 支持URL过滤,匹配自定义规则中的条目,如果用户请求的URL包含这些,返回403。 支持URL参数过滤,原理同上。 支持日志记录,将所有拒绝的操作,记录到日志中去 1.3 WAF的特点 异常检测协议 Web应用防火墙会对HTTP的请求进行异常检测,拒绝不符合HTTP标准的请求。并且,它也可以只允许HTTP协议的部分选项通过,从而减少攻击的影响范围。甚至,一些Web应用防火墙还可以严格限定HTTP协议中那些过于松散或未被完全制定的选项。 增强的输入验证 增强输入验证

中国顶级程序员图鉴

允我心安 提交于 2019-11-28 13:10:23
程序员圈子里有很多如明星般闪耀的牛人! 有中国第一代程序员求伯君 有获得图灵奖的姚期智 有产品取得巨大成功的张小龙 商业巨子张一鸣 影响开源领域的章亦春...... 他们的最初都是程序员 机遇与热爱,把他们送到了不同的方向 在这里,我们分两篇为大家展示 本篇:技术领域有着巨大影响力的程序员 第二篇: 《商业领域有着巨大影响力的程序员》 在技术领域 有的人,凭一己之力 开发出了几千人使用的开源软件 有的创造了网络的神话,至今为传诵 有的授业解惑,或教室、或出书、或博客 他们影响了一批又一批的后来者 他们的名字经常被提起 这是一群对技术有着最纯真热爱的人 (小编补充声明:下面排序并不按个人成就,如果你喜欢的大牛排在后面了,别纠结别激动!!!) 非科班出身的大牛: 01.阿里-蔡景现 蔡景现,一个更广为人知的名字是--“多隆”。 他是阿里巴巴初创团队三名工程师之一, 在一个月之内,从零起步搭建起了“淘宝” 。 非科班出身的他被称“码神”,又称“阿里扫地僧“。 个人历程: 1976年,出生于浙江苍南一个农民家庭; 2000年,从杭州大学生物系硕士毕业,加入阿里; 2014年,成为阿里合伙人; 2017年,41的他以26亿身家登上胡润财富榜。 技术成就: 对于技术,既懂C/C++,又懂Java内核; 既可以深入技术底层,又能切入到高层业务领域, 从前端到后端,独自维护淘宝搜索引擎长达5年。