ngx_lua访问数据库
来源:互联网 发布:多通道数据采集系统 编辑:程序博客网 时间:2024/05/15 18:53
https://github.com/openresty/lua-resty-mysql 张宜春大师写的mysql链接模块
利用大神的模块,下面是我写的一个验证的函数,通过用户session判断这次访问是否合法。
function F.check_session() local uid = args["uid"] local session = args["session"] local mysql = require "mysql" if uid == nil or uid == 0 then ngx.exit(403) end local db, err = mysql:new() if not db then ngx.say("failed to instantiate mysql: ", err) return end db:set_timeout(1000) -- 1 sec local ok, err, errno, sqlstate = db:connect{ host = "127.0.0.1", port = 3306, database = "xxx", user = "root", password = "xxx", max_packet_size = 1024 * 1024 } if not ok then ngx.say("failed to connect: ", err, ": ", errno, " ", sqlstate) return end sql = "SELECT * FROM `sessions` WHERE `uid` = ".. uid .. " and `session_id` = " .."\"" .. session .."\"" res, err, errno, sqlstate = db:query(sql) if not res then ngx.header["ID_Error"] = "sql error" ngx.exit(403) elseif #(res) > 0 then --local cjson = require "cjson" local time_now = os.time() local last_time = tonumber(res[1]["last_activity"]) + tonumber(res[1]["life_time"]) if last_time <= time_now then ngx.exit(403) end --[[ local session = args["session"] local session_id = res[1]["session_id"] if session ~= session_id then ngx.header["ID_Error"] = "error session" ngx.exit(403) end --]] else ngx.header["ID_Error"] = "sqldate error" ngx.exit(403) endend
0 0
- ngx_lua访问数据库
- Ngx_lua
- ngx_lua利用nginx内部跳转提高访问效率
- nginx使用ngx_lua访问后端Thrift-Server实现和介绍
- ngx_lua入门
- ngx_lua模块
- ngx_lua 模块
- ngx_lua 模块
- ngx_lua 模块
- 数据库访问
- 数据库访问
- 数据库访问
- 数据库访问
- 访问数据库
- 数据库访问
- 数据库访问
- 访问数据库
- 数据库访问
- 返回顶部的喷气火箭
- redis
- 对于Oracle 外部表需要了解哪些知识点
- android ViewPager切换带切换效果
- 动态规划:从新手到专家(关于动态规划算法最精彩的中文描述,没有之一) (转载)
- ngx_lua访问数据库
- bzoj1927: [Sdoi2010]星际竞速
- [剑指offer]求和1+2+3+....n
- 微信第三方登录
- RocketMQ 消息队列单机部署及使用
- mysql-5.7.11-winx64官方下载版初始化方法
- use docker to setup building environment for a project
- JAVA实现K-means聚类
- stale event(socket的过期事件问题)