Resty

nginx 学习笔记(五)nginx_lua 如何连接redis

前提是你 提交于 2020-03-13 22:36:42
安装redis 下载 wget http://download.redis.io/releases/redis-5.0.5.tar.gz 解压安装配置 make, sudo make install 运行 redis 配置文件: redis.conf 可以编辑相关内容,默认端口是 6379 启动 redis 切换到 redis解压的目录的src下面执行 ./redis-server & 使其后台运行 指定 redis.conf启动 ./redis-server redis.conf 修改配置 vim redis.conf 找到 #requirepass foobared 这一行,去掉注释把foobared改成自己需要设置的密码。(requirepass前面不能留空行) 找到bind 127.0.0.1这行注释掉 注释掉ip绑定(这个只允许本地调试,不注释掉这个,你远程这个redis的时候会提示: redis.clients.jedis.exceptions.JedisConnectionException: java.net.ConnectException: Connection refused: connect) 找到protected-mode将原来的yes改为no 关闭保护模式(不关闭的话远程这个redis会提示: redis.clients.jedis

Nginx的OpenResty应用

。_饼干妹妹 提交于 2020-03-09 16:33:12
参考 https://www.cnblogs.com/digdeep/p/4859575.html Lua的优点 Lua是一种轻量级、可嵌入式的脚本语言,这样可以非常容易的嵌入到其他语言中使用。另外Lua提供了协程并发,即以同步调用的方式进行异步执行,从而实现并发,比起回调机制的并发来说代码更容易编写和理解,排查问题也会容易。Lua还提供了闭包机制,函数可以作为First Class Value 进行参数传递,另外其实现了标记清除垃圾收集。 因为Lua的小巧轻量级,可以在Nginx中嵌入Lua VM,请求的时候创建一个VM,请求结束的时候回收VM。 什么是ngx_lua ngx_lua是Nginx的一个模块,将Lua嵌入到Nginx中,从而可以使用Lua来编写脚本,这样就可以使用Lua编写应用脚本,部署到Nginx中运行,即Nginx变成了一个Web容器;这样开发人员就可以使用Lua语言开发高性能Web应用了。 ngx_lua提供了与Nginx交互的很多的API,对于开发人员来说只需要学习这些API就可以进行功能开发,而对于开发web应用来说,如果接触过Servlet的话,其开发和Servlet类似,无外乎就是知道接收请求、参数解析、功能处理、返回响应这几步的API是什么样子的。 OpenResty OpenResty® 是一个基于 Nginx 与 Lua 的高性能 Web 平台

OpenResty + Lua + Kafka 实现日志收集系统

喜夏-厌秋 提交于 2020-03-01 00:31:15
1、Kafka 安装 官网下载 kafka_2.11-1.1.1.tgz,解压后,修改kafka的配置文件:config/server.properties broker.id=0 # 在集群内必须唯一 advertised.host.name=192.168.10.100 # 配置对外IP地址,否则链接不上kafka log.dirs=/data/kafka-logs # 配置kafka的存储目录,包含kafka的日志和写入kafka的文件 zookeeper.connect=zk.test.com:2181 # 配置zookeeper的地址 2、启动kafka服务 nohup sh bin/kafka-server-start.sh config/server.properties > /data/kafka-logs/server.log 2>&1 & 启动kafka服务,并将服务端日志写入 server.log 文件 3、创建topic bin/kafka-topics.sh --zookeeper zk.test.com:2181 --create --topic test1 --partitions 1 --replication-factor 1 创建名称为 test1 的topic 4、kafka测试 bin/kafka-console-producer.sh -

OpenResty学习指南(二)

霸气de小男生 提交于 2020-02-08 18:53:01
我的个人博客: https://www.luozhiyun.com/ 数据结构table table并没有区分开数组、哈希、集合等概念,而是揉在了一起。 local color = {first = "red", "blue", third = "green", "yellow"} print(color["first"]) --> output: red print(color[1]) --> output: blue print(color["third"]) --> output: green print(color[2]) --> output: yellow print(color[3]) --> output: nil table 库函数 获取元素个数 对于序列,用table.getn 或者一元操作符 # ,就可以正确返回元素的个数。 $ resty -e 'local t = { 1, 2, 3 } print(table.getn(t)) ' # 返回3 不是序列的 table,就无法返回正确的值。 $ resty -e 'local t = { 1, a = 2 } print(#t) ' #返回1 所以不要使用函数 table.getn 和一元操作符 # 。 我们可以使用 table.nkeys 来获取 table 长度,返回的是 table 的元素个数

OpenResty学习指南(一)

做~自己de王妃 提交于 2020-02-06 00:09:19
我的博客: https://www.luozhiyun.com/archives/217 想要学好 OpenResty,你必须理解下面 8 个重点: 同步非阻塞的编程模式; 不同阶段的作用; LuaJIT 和 Lua 的不同之处; OpenResty API 和周边库; 协程和 cosocket; 单元测试框架和性能测试工具; 火焰图和周边工具链; 性能优化。 你不应该使用任何 Lua 世界的库来解决上述问题,而是应该使用 cosocket 的 lua-resty-* 库。Lua 世界的库很可能会带来阻塞,让原本高性能的服务,直接下降几个数量级。 OpenResty阶段 和nginx一样,都有阶段的概念,并且每个阶段都有自己不同的作用: set_by_lua,用于设置变量; rewrite_by_lua,用于转发、重定向等; access_by_lua,用于准入、权限等; content_by_lua,用于生成返回内容; header_filter_by_lua,用于应答头过滤处理; body_filter_by_lua,用于应答体过滤处理; log_by_lua,用于日志记录。 OpenResty 的 API 是有阶段使用限制的。每一个 API 都有一个与之对应的使用阶段列表,如果你超范围使用就会报错。 具体的API可以查阅文档: https://github.com

openresty中lua的数据类型及案例演示

匿名 (未验证) 提交于 2019-12-02 23:40:02
版权声明:原创文章,未经允许不得转载. https://blog.csdn.net/shengqianfeng/article/details/91458482 openresty输出helloworld的两种方式 进入luajit目录,查看luajit版本 信息: 使用luajit执行lua脚本,我们编写一个hello.lua,输出hello world! ./luajit -v 使用resty命令来执行打印hello world,因为resty最终也是调用luajit的。 /usr/local/openresty-1.11.2.5/bin/resty -e 'print("hello world")' openresty打印Lua的数据类型 输出:string /usr/local/openresty-1.11.2.5/bin/resty -e 'print(type(print))' 输出:function /usr/local/openresty-1.11.2.5/bin/resty -e 'print(type(true))' 输出:boolean /usr/local/openresty-1.11.2.5/bin/resty -e 'print(type(0.1))' 输出:number 输出:table 输出:nil 数据类型案例 字符串拼接 /usr/local

五章 常用Lua开发库3-模板渲染

别等时光非礼了梦想. 提交于 2019-12-01 09:51:59
五章 常用Lua开发库3-模板渲染 博客分类: 跟我学Nginx+Lua开发 nginx lua 动态web网页开发是Web开发中一个常见的场景,比如像京东商品详情页,其页面逻辑是非常复杂的,需要使用模板技术来实现。而Lua中也有许多模板引擎,如目前我在使用的 lua-resty-template ,可以渲染很复杂的页面,借助LuaJIT其性能也是可以接受的。 如果学习过JavaEE中的servlet和JSP的话,应该知道JSP模板最终会被翻译成Servlet来执行;而lua-resty-template模板引擎可以认为是JSP,其最终会被翻译成Lua代码,然后通过ngx.print输出。 而lua-resty-template和大多数模板引擎是类似的,大体内容有: 模板位置:从哪里查找模板; 变量输出/转义:变量值输出; 代码片段:执行代码片段,完成如if/else、for等复杂逻辑,调用对象函数/方法; 注释:解释代码片段含义; include:包含另一个模板片段; 其他:lua-resty-template还提供了不需要解析片段、简单布局、可复用的代码块、宏指令等支持。 首先需要下载lua-resty-template Java代码 cd /usr/example/lualib/resty/ wget https: //raw.githubusercontent.com

极简的Restful框架推荐->Resty(服务端+客户端)

谁说胖子不能爱 提交于 2019-11-30 01:02:04
源码链接:OSC -> Resty Github -> Resty 在线开发手册 如果你还不是很了解restful,或者认为restful只是一种规范不具有实际意义,推荐一篇osc两年前的文章: RESTful API 设计最佳实践 和 Infoq的一篇极其理论的文章 理解本真的REST架构风格 虽然有点老,介绍的也很简单,大家权当了解,restful的更多好处,还请google 拥有jfinal/activejdbc一样的activerecord的简洁设计,使用更简单的restful框架 部分设计也来自jfinal+ activejdbc+restx ,也希望大家多多支持开源,开源不比较框架之间的优劣,只描述自己的想法。 restful的api设计,是作为restful的服务端最佳选择(使用场景:客户端和服务端解藕,用于对静态的html客户端(mvvm等),ios,andriod等提供服务端的api接口) 下载jar包: Resty jar maven使用方式: 1. 添加maven snapshots仓库 <repositories> <repository> <id>oss-snapshots</id> <url>https://oss.sonatype.org/content/repositories/snapshots</url> <releases> <enabled

运维安全——安全防护-OpenResty

荒凉一梦 提交于 2019-11-30 00:42:49
OpenResty ® 是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。 安装 安装OpenResty 安装依赖包 $ yum install -y readline-devel pcre-devel openssl-devel gcc 下载最新OpenResty源码包 $ cd /usr/local/src/ $ wget https://openresty.org/download/openresty-1.15.8.2.tar.gz 编译安装: $ tar zxvf openresty-1.15.8.2.tar.gz $ cd openresty-1.15.8.2/ $ ./configure --prefix=/usr/local/openresty --with-luajit --with-http_stub_status_module --with-pcre --with-pcre-jit $ gmake && gmake install 补充: 关于gmake和make的区别 配置waf规则 下载waf规则lua文件: waf $ cd /usr/local/src $ git clone https:/

【重要】Nginx模块Lua-Nginx-Module学习笔记(三)Nginx + Lua + Redis 已安装成功(非openresty 方式安装)

主宰稳场 提交于 2019-11-29 03:36:33
源码地址:https://github.com/Tinywan/Lua-Nginx-Redis 一、 目标    使用Redis做分布式缓存;使用lua API来访问redis缓存;使用nginx向客户端提供服务,ngx_lua将lua嵌入到nginx,让nginx执行lua脚本,高并发,非阻塞的处理各种请求。url请求nginx服务器,然后lua查询redis,返回json数据。 二、准备工作   系统环境:Ubuntu 14.0 (64位)   Redis服务安装:apt-get install redis-server   安装Git:apt-get install git   安装Lua: # apt-get install lua5.1 # apt-get install liblua5.1-dev # apt-get install liblua5.1-socket2 # apt-get install -y lua5.1 liblua5.1-0 liblua5.1-0-dev 补充:安装模块: stream-lua-nginx-module 出现的错误信息: make[1]: *** [objs/addon/src/ngx_stream_lua_socket_tcp.o] Error 1 解决办法: apt-get install lua-socket 三、下载库 1