ITPub博客

首页 > 应用开发 > IT综合 > 开始学习OpenResty

开始学习OpenResty

原创 IT综合 作者:壹頁書 时间:2015-11-30 16:35:29 0 删除 编辑
OpenResty下载地址


Nginx增加模块需要重新编译.
OpenResty 将很多常用的模块,包括LUA支持,cjson等,直接打包在一起.
使用起来非常的方便.随手用的模块都有,也免去了重新编译的烦恼.

安装:
useradd -m nginx

加压文件,创建目标文件夹OpenResty
[nginx@localhost~]$tar -zxvf ngx_openresty-1.9.3.2.tar.gz 
[nginx@localhost~]$mkdir OpenResty
[nginx@localhost~]$cd ngx_openresty-1.9.3.2

然后执行
./configure --prefix=/home/nginx/OpenResty 
make -j `cat /proc/cpuinfo | grep processor| wc -l`
make install

安装结束.可以看到Nginx和相关模块已经安装完成.
[nginx@localhost~]$ls OpenResty/
bin  luajit  lualib  nginx


修改Nginx配置文件,通过Lua访问MySQL
vim /home/nginx/OpenResty/nginx/conf/nginx.conf


创建/home/nginx/lua_mysql.lua文件,增加lua逻辑

  1. local mysql=require "resty.mysql"
  2. local cjson=require "cjson"
  3. local db,_=mysql:new()
  4. db:set_timeout(1000)
  5. local ok,err,errno,sqlstate=db:connect{
  6.     host="127.0.0.1",
  7.     port=3306,
  8.     database="mvbox",
  9.     user="xx",
  10.     password="xx"
  11. }
  12. if not ok then
  13.     ngx.say("failed to connect:",err,",",errno,",",sqlstate)
  14.     return
  15. end
  16. db:query("drop table if exists t1")
  17. db:query("create table t1(id int primary key auto_increment,name varchar(20))")
  18. db:query("insert into t1(name) values(\'s1\')")
  19. db:query("insert into t1(name) values(\'s2\')")
  20. local res,err,errno,sqlstate=db:query("select * from t1")
  21. if not res then
  22.     ngx.say("bad result:",err,",",errno,",",sqlstate)
  23.     return
  24. end
  25. ngx.say(cjson.encode(res))
  26. db:close()

测试结果:
[nginx@localhost~]$curl
[{"name":"s1","id":1},{"name":"s2","id":2}]

他这个db:query是冒号..

下面这种用法,比较有意思.



参考:


http://blog.csdn.net/qinyushuang/article/details/43950497

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29254281/viewspace-1849844/,如需转载,请注明出处,否则将追究法律责任。

下一篇: Lua学习笔记(一)
请登录后发表评论 登录
全部评论

注册时间:2013-10-19

  • 博文量
    621
  • 访问量
    6131664