nginx+lua+redis搭建
2015-07-18 14:14
731 查看
操作系统: Ubuntu
一、安装Nginx
这里采用OpenResty的方式安装: http://www.openresty.org/cn/index.html 1) apt-get install libreadline-dev libpcre3-dev libssl-dev perl
2) 从OpenResty的网站下载最新的安装文件,这里使用的是ngx_openresty-1.7.7.2.tar.gz
3) 执行./configure --prefix= --with-luajit
默认会安装到/usr/local/openresty,如果想指定安装目录,需要通过--prefix参数指定
4)执行make, make install
5) 设置环境变量:
vi ~/.bashrc 在其最后添加
export PATH=/usr/local/openresty/nginx/sbin:$PATH
6) 配置nginx
nginx默认是用80端口,但是普通用户无权使用,可以改用其他端口比如8080
vi /usr/local/openresty/nginx/conf/nginx.conf,配置
7) 启动,直接在命令行输入nginx启动,打开浏览器,输入localhost:8080验证成功页面
二、安装Redis
1) 下载
wget http://download.redis.io/releases/redis-3.0.0.tar.gz 2) 解压安装配置
make, sudo make install
3) 运行redis
配置文件:redis.conf可以编辑相关内容,默认端口是6379
cd src
./redis-server & 使其后台运行
4) 客户端连接
退出的话在客户端执行shutdown命令:
三、Nginx操作Redis
要想在nginx里访问redis,需要HttpRedis模块或 HttpRedis2Module模块 或 HttpLuaModule模块的lua-resty-redis库。具体可以参考http://www.it165.net/database/html/201302/3543.html
1) 关于HttpRedis2Module的介绍可以参考http://wiki.nginx.org/HttpRedis2Module
在conf/nginx.conf里编辑添加以下内容可以实现简单的get/set:
2) 连接池配置
以上配置每次查询都会建立连接,可以配置连接池:
在配置文件的 http {
.....
里添加:
upstream redis_pool {
server 127.0.0.1:6379
keepalive 1024;
}
然后将具体的查询连接替换为使用连接池:
将redis2_passlocalhost:6379替换为 redis2_pass redis_pool
测试如下:
首先通过redis-cli设置变量:set foo 123
然后通过http查询
curl http://localhost:8080/get?key=foo 结果如下:
$3
123
即结果的长度和结果本身。
3)采用HttpRedis2Module的redis响应时原生响应,可以结合LuaRedisModule解析这个响应,配置如下:
配置文件里的lua脚本也可以写在一个单独文件里,例如
在/usr/local/openresty/nginx/下创建一个文件get.lua,内容为:
然后将nginx.conf配置为:
测试如下:
curl http://localhost:8080/lua_get?key=foo 返回结果:
123
4)采用lua-resty-redis方式
先创建一个lua文件:/usr/local/openresty/nginx/lua/redis.lua,内容如下:
然后配置nginx.conf:
location /lua_resty_get {
content_by_lua_file 'usr/local/openresty/nginx/lua/redis.lua';
}
测试如下:
curl http://localhost:8080/lua_resty_get?key=foo 结果:123
参考文档: http://wiki.nginx.org/HttpRedis2Module http://huoding.com/2012/08/31/156 http://m.blog.csdn.net/blog/chengfangang/44153849 http://www.it165.net/database/html/201302/3543.html http://wiki.nginx.org/HttpUpstreamKeepaliveModule https://github.com/openresty/lua-resty-redis
一、安装Nginx
这里采用OpenResty的方式安装: http://www.openresty.org/cn/index.html 1) apt-get install libreadline-dev libpcre3-dev libssl-dev perl
2) 从OpenResty的网站下载最新的安装文件,这里使用的是ngx_openresty-1.7.7.2.tar.gz
3) 执行./configure --prefix= --with-luajit
默认会安装到/usr/local/openresty,如果想指定安装目录,需要通过--prefix参数指定
4)执行make, make install
5) 设置环境变量:
vi ~/.bashrc 在其最后添加
export PATH=/usr/local/openresty/nginx/sbin:$PATH
6) 配置nginx
nginx默认是用80端口,但是普通用户无权使用,可以改用其他端口比如8080
vi /usr/local/openresty/nginx/conf/nginx.conf,配置
7) 启动,直接在命令行输入nginx启动,打开浏览器,输入localhost:8080验证成功页面
二、安装Redis
1) 下载
wget http://download.redis.io/releases/redis-3.0.0.tar.gz 2) 解压安装配置
make, sudo make install
3) 运行redis
配置文件:redis.conf可以编辑相关内容,默认端口是6379
cd src
./redis-server & 使其后台运行
4) 客户端连接
退出的话在客户端执行shutdown命令:
三、Nginx操作Redis
要想在nginx里访问redis,需要HttpRedis模块或 HttpRedis2Module模块 或 HttpLuaModule模块的lua-resty-redis库。具体可以参考http://www.it165.net/database/html/201302/3543.html
1) 关于HttpRedis2Module的介绍可以参考http://wiki.nginx.org/HttpRedis2Module
在conf/nginx.conf里编辑添加以下内容可以实现简单的get/set:
2) 连接池配置
以上配置每次查询都会建立连接,可以配置连接池:
在配置文件的 http {
.....
里添加:
upstream redis_pool {
server 127.0.0.1:6379
keepalive 1024;
}
然后将具体的查询连接替换为使用连接池:
将redis2_passlocalhost:6379替换为 redis2_pass redis_pool
测试如下:
首先通过redis-cli设置变量:set foo 123
然后通过http查询
curl http://localhost:8080/get?key=foo 结果如下:
$3
123
即结果的长度和结果本身。
3)采用HttpRedis2Module的redis响应时原生响应,可以结合LuaRedisModule解析这个响应,配置如下:
配置文件里的lua脚本也可以写在一个单独文件里,例如
在/usr/local/openresty/nginx/下创建一个文件get.lua,内容为:
然后将nginx.conf配置为:
测试如下:
curl http://localhost:8080/lua_get?key=foo 返回结果:
123
4)采用lua-resty-redis方式
先创建一个lua文件:/usr/local/openresty/nginx/lua/redis.lua,内容如下:
然后配置nginx.conf:
location /lua_resty_get {
content_by_lua_file 'usr/local/openresty/nginx/lua/redis.lua';
}
测试如下:
curl http://localhost:8080/lua_resty_get?key=foo 结果:123
参考文档: http://wiki.nginx.org/HttpRedis2Module http://huoding.com/2012/08/31/156 http://m.blog.csdn.net/blog/chengfangang/44153849 http://www.it165.net/database/html/201302/3543.html http://wiki.nginx.org/HttpUpstreamKeepaliveModule https://github.com/openresty/lua-resty-redis
相关文章推荐
- HBase,Redis
- centOS上安装redis
- Java + Redis3.0.2集群的应用(四)——Aop完美整合
- 使用Python操作Redis
- Java + Redis3.0.2集群的应用(三)——数据设计
- Redis
- redis学习-事物,生存时间
- reids使用
- asp.net mvc 用Redis实现分布式集群共享Session。
- jedis访问redis学习笔记
- jedis访问redis学习笔记
- Spring Data Redis简介以及项目Demo,RedisTemplate和 Serializer详解
- redis集群及常用的操作命令
- Redis事务
- Spring-data-redis:特性与实例
- Redis学习手册(服务器管理)
- zabbix监控之redis自动发现并监控
- Redis+Keepalived高可用方案详细分析
- 基于Redis Sentinel的Redis集群(主从&Sharding)高可用方案
- 《Redis Sentinel机制与用法(一)》