openresty(nginx)、lua、drizzle调研
一、概述:
1.研究目标:nginx中使用lua脚本,及nginx直接访问mysql,redis
2.需要安装的内容:
openresty,mysql,redis
3.OpenResty (也称为 ngx_openresty)是一个全功能的 Web 应用服务器。它打包了标准的 Nginx 核心,很多的常用的第三方模块,以及它们的大多数依赖项。http://openresty.org/cn/index.html
二、安装说明
0.环境准备
$yum install -y gcc gcc-c++ readline-devel pcre-devel openssl-devel tcl perl
1、安装drizzle http://wiki.nginx.org/HttpDrizzleModule
cd /usr/local/src/
wget http://openresty.org/download/drizzle7-2011.07.21.tar.gz
tar xzvf drizzle7-2011.07.21.tar.gz
cd drizzle7-2011.07.21/
./configure --without-server
make libdrizzle-1.0
make install-libdrizzle-1.0
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
2、安装openresty
wget http://openresty.org/download/ngx_openresty-1.7.2.1.tar.gz
tar xzvf ngx_openresty-1.7.2.1.tar.gz
cd ngx_openresty-1.7.2.1/
./configure --with-http_drizzle_module
gmake
gmake install
三、nginx配置nginx.conf
| /usr/local/openresty/nginx/conf/nginx.conf |
|
# 添加MySQL配置(drizzle) server { #charset koi8-r; location / { location /lua { location /lua_redis { location /lua_mysql { location @cats-by-name { location @cats-by-id { location = /cats { if ngx.var.arg_id then rds_json_ret 400 "expecting \"name\" or \"id\" query arguments"; # 通过url匹配出name,并编码防止注入,最后以json格式输出结果 # 查看MySQL服务状态 |
四、lua测试脚本
| /usr/local/lua_test/redis_test.lua |
local redis = require "resty.redis" |
| /usr/local/lua_test/mysql_test.lua |
local mysql = require "resty.mysql" |
五、验证结果
| curl测试 |
|
$ curl 'http://127.0.0.1/lua_test' $ redis-cli set foo 'hello,lua-redis' $ curl 'http://127.0.0.1/lua_redis' hello,lua-redis $ curl 'http://127.0.0.1/lua_mysql' connected to mysql. table cats created. 3 rows inserted into table cats (last insert id: 1) result: [{"name":"Bob","id":"1"},{"name":"","id":"2"},{"name":null,"id":"3"}] $ curl 'http://127.0.0.1/cats' {"errcode":400,"errstr":"expecting \"name\" or \"id\" query arguments"} $ curl 'http://127.0.0.1/cats?name=bob' [{"id":1,"name":"Bob"}] $ curl 'http://127.0.0.1/cats?id=2' [{"id":2,"name":""}] $ curl 'http://127.0.0.1/mysql/bob' [{"id":1,"name":"Bob"}] $ curl 'http://127.0.0.1/mysql-status' worker process: 32261 upstream backend connection pool capacity: 0 servers: 1 peers: 1 |
六、参考资料
1.openresty http://openresty.org/cn/index.html
2.tengine http://tengine.taobao.org/documentation_cn.html
如何安装nginx_lua_module模块
http://www.cnblogs.com/yjf512/archive/2012/03/27/2419577.html
nginx+lua 项目使用记(二)
http://blog.chinaunix.net/uid-26443921-id-3213879.html
nginx_lua模块基于mysql数据库动态修改网页内容
https://www.centos.bz/2012/09/nginx-lua-mysql-dynamic-modify-content/
突破log_by_lua中限制Cosocket API的使用
http://17173ops.com/2013/11/11/resolve-cosocket-api-limiting-in-log-by-lua.shtml
17173 Ngx_Lua使用分享
http://17173ops.com/2013/11/01/17173-ngx-lua-manual.shtml
关于 OPENRESTY 的两三事
http://zivn.me/?p=157
Nginx_Lua
http://www.ttlsa.com/nginx/nginx-lua/
Nginx 第三方模块-漫谈缘起
http://www.cnblogs.com/yjf512/archive/2012/03/30/2424726.html
CentOS6.4 安装OpenResty和Redis 并在Nginx中利用lua简单读取Redis数据
http://www.cnblogs.com/kgdxpr/p/3550633.html
Nginx与Lua
http://huoding.com/2012/08/31/156
由Lua 粘合的Nginx生态环境
http://blog.zoomquiet.org/pyblosxom/oss/openresty-intro-2012-03-06-01-13.html
Nginx 第三方模块试用记
http://chenxiaoyu.org/2011/10/30/nginx-modules.html
agentzh 的 Nginx 教程(版本 2013.07.08)
http://openresty.org/download/agentzh-nginx-tutorials-zhcn.html
CentOS下Redis 2.2.14安装配置详解
http://www.cnblogs.com/hb_cattle/archive/2011/10/22/2220907.html
nginx安装
http://blog.csdn.net/gaojinshan/article/details/37603157
openresty(nginx)、lua、drizzle调研的更多相关文章
- OpenResty(nginx+lua) 入门
OpenResty 官网:http://openresty.org/ OpenResty 是一个nginx和它的各种三方模块的一个打包而成的软件平台.最重要的一点是它将lua/luajit打包了进来, ...
- (转)OpenResty(nginx+lua) 开发入门
原文:https://blog.csdn.net/enweitech/article/details/78519398 OpenResty 官网:http://openresty.org/ Open ...
- CentOS安装OpenResty(Nginx+Lua)开发环境
一.简介 OpenResty® 是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库.第三方模块以及大多数的依赖项.用于方便地搭建能够处理超高并发.扩展性极高 ...
- 【原创】大叔问题定位分享(36)openresty(nginx+lua)中获取不到post数据,ngx.req.get_body_data返回nil
openresty(nginx+lua)中获取不到post数据,ngx.req.get_body_data返回nil This function returns nil if the request ...
- 搭建OpenResty(Nginx+Lua)
这篇文章是一个多月前写的,当时之所以搭建这个是为了最大程度上发挥Nginx的高并发效率(主要是结合lua脚本),参考的话,主要参考张开涛先生写的跟开涛学Nginx+lua系列文章,地址为:https: ...
- OpenResty(Nginx+Lua)开发入门
Nginx入门 本文目的是学习Nginx+Lua开发,对于Nginx基本知识可以参考如下文章: nginx启动.关闭.重启 http://www.cnblogs.com/derekchen/archi ...
- 跟我学OpenResty(Nginx+Lua)开发目录贴 (转)
使用Nginx+Lua开发近一年的时间,学习和实践了一些Nginx+Lua开发的架构,为了让更多人使用Nginx+Lua架构开发,利用春节期间总结了一份基本的学习教程,希望对大家有用.也欢迎谈探讨学习 ...
- 【原创】运维基础之OpenResty(Nginx+Lua)+Kafka
使用docker部署 1 下载 # wget https://github.com/doujiang24/lua-resty-kafka/archive/v0.06.tar.gz# tar xvf v ...
- OpenResty(Nginx)+Lua+GraphicsMagick实现缩略图功能
http://www.hopesoft.org/blog/?p=1188 http://www.imagemagick.org/download/ 2.用法 原始图片是input.jpg,尺寸:160 ...
- OpenResty部署nginx及nginx+lua
因为用nginx+lua去开发,所以会选择用最流行的开源方案,就是用OpenResty nginx+lua打包在一起,而且提供了包括redis客户端,mysql客户端,http客户端在内的大量的组件 ...
随机推荐
- linq之where子句
在Linq中,where子句主要是来指定筛选元素的逻辑条件.linq查询中where子句不是必须的,可以不包括where子句,也可以包含多个where子句,where子句中可以包含一个或多个bool类 ...
- 关于SVN删除后的文件不能重新添加(正常途径不行)
在你自己的机器上(即SVN客户端),把“新建test”文件夹标记为删除,然后提交,在删除之前可以备份“新建test”文件夹,提交后,在当前文件夹下更新SVN.然后把你刚刚备份的文件夹重新放到该目录下. ...
- 用stimulsoft Reports报表工具制作简单报表的过程
这是在数据库sql server中People表的数据
- JMS学习(一)基本概念
这两天面试了一两个公司,由于简历中的最近一个项目用到了JMS,然而面试官似乎对这个很感兴趣,所以都被问到了,但可惜的是,我除了说我们使用了JMS外,面对他们提出的一些关于JMS的问题,我回答得相当差, ...
- Javascript-回调函数浅谈
回调函数就是一个通过函数指针调用的函数.如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数.回调函数不是由该函数的实现方直接调用,而是在特定 ...
- ArcGIS使用Python脚本工具
在Pyhton写的一些代码,用户交互不方便,用户体验比较差,不方便重用.在ArcGIS中可以将用写的Python代码导入到ToolBox中,这样用起来就比较方便了.这里用按要素裁剪栅格的Python来 ...
- PHP读取Excel文件内容
PHP读取Excel文件内容 项目需要读取Excel的内容,从百度搜索了下,主要有两个选择,第一个是PHPExcelReader,另外一个是PHPExcel. PHPExcelReader比较 ...
- Spring(九)Spring对事务的支持
一.对事务的支持 事务:是一组原子操作的工作单元,要么全部成功,要么全部失败 Spring管理事务方式: JDBC编程事务管理:--可以控制到代码中的行 可以清楚的控制事务的边界,事务控制粒度化细(编 ...
- Git学习 --> 个人常用命令add,commit以及push
Git命令行配置1 安装Github2 安装msysgit3 要配置用户名和油箱 git config --global user.name <用户名> 我的命令就是:git confi ...
- Swift学习--常量.变量.数据类型的使用(二)
一.Swift中的数组 //Swift中的数组 //NSArray *arr = @["",""]; //和OC数组的区别就是去掉前面的@ let arr11 ...