1. lua入門demo
1.1. 入門之Hello World!!
- 因爲我習慣用docker安裝各類軟件,此次的lua腳本也是運行在docker容器上
- openresty是nginx+lua的各類模塊,因此直接docker安裝openresty
- 修改nginx.conf配置文件,在http模塊中加上
lua_package_path "/usr/local/openresty/lualib/?.lua;;";
- http內的server模塊上,在加個
location /lua-file{ default_type 'text/html'; content_by_lua_file /usr/local/openresty/demo/lua-file.lua; }
-
這樣我能夠在指定目錄開始編寫lua腳本了,在寫完腳本後,nginx -s reload 一下就能夠經過ip/lua-file訪問lua腳本了html
-
我在lua-file.lua內先寫上 ngx.say('Hello world!!'),而後reload一下後nginx
-
訪問結果:redis
1.2. 訪問redis
local function close_redis(red) if not red then return end local pool_max_idle_time = 10000 local pool_size = 100 local ok,err = red:set_keepalive(pool_max_idle_time,pool_size) if not ok then ngx.say("set keepalive error:" ,err) end end local redis = require "resty.redis" local red = redis:new() red:set_timeout(1000) local ok,err = red:connect("47.96.64.100",6379) if not ok then ngx.say("connect to redis error: ",err) return close_redis(red) end local count,err = red:get_reused_times() if 0 == count then ok,err = red:auth("123456") if not ok then ngx.say("auth fail") return end elseif err then ngx.say("failed to get reused times: ",err) return end ngx.say(red:get("dog")) close_redis(red)
- 固然,我事先redis存放了key爲dog的值
- 訪問瀏覽器結果
1.3. 總結
- 經過簡單的hello world實例和redis讀取,咱們基本瞭解了lua的用法和功能,lua的語法和js相似,部分本身的特點,這裏我就拋磚引玉一下了