nginx lua開發例子

2021-07-16 07:59:38 字數 2642 閱讀 7056

參考文章

conf檔案與原來文章的配置有點不同,這個要參考官方文件

vim /usr/chapter6/nginx_chapter6.conf

upstream backend 

server

location

~ ^/ad/(\d+)$

}

lua檔案

local redis = require("resty.redis")

local cjson = require("cjson")

local cjson_encode = cjson.encode

local ngx_log = ngx.log

local ngx_err = ngx.err

local ngx_exit = ngx.exit

local ngx_print = ngx.print

local ngx_re_match = ngx.re.match

local ngx_var = ngx.var

local

function

close_redis(red)

ifnot 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)

ifnot ok then

ngx_log(ngx_err, "set redis keepalive error : ", err)

endendlocal

function

read_redis(id)

local red = redis:new()

red:set_timeout(1000)

local ip = "127.0.0.1"

local port = 1111

local ok, err = red:connect(ip, port)

ifnot ok then

ngx_log(ngx_err, "connect to redis error : ", err)

return close_redis(red)

endlocal resp, err = red:get(id)

ifnot resp then

ngx_log(ngx_err, "get redis content error : ", err)

return close_redis(red)

end--得到的資料為空處理

end--獲取id

local id = ngx_var.id

--從redis獲取

local content = read_redis(id)

--如果redis沒有,回源到tomcat

end--如果還沒有返回404

end--輸出內容

日誌

發現乙個nginx LUA開發Web App的框架

舉報 目錄 nginx是個好東西,nginx的openrtsy發行版本更是個好東西。今天又發現個好東西 moochine moochine 乙個簡單的輕量級的web framework,基於ngx openresty ngx lua,ttp 做的框架,屬性 方法 request read body ...

nginx lua環境搭建

lua 是乙個小巧的指令碼語言。該語言的設計目的是為了嵌入應用程式中,從而為應用程式提供靈活的擴充套件和定製功能。lua指令碼可以很容易的被c c 呼叫,也可以反過來呼叫c c 的函式,這使得lua在應用程式中可以被廣泛應用。不僅僅作為擴充套件指令碼,也可以作為普通的配置檔案,代替xml,ini等檔...

nginx lua 執行階段

nginx 處理請求的過程一共劃分為 11 個階段,按照執行順序依次是 rewrite access 和 content 這三個最為常見的 nginx 請求處理階段 ngx.lua的執行階段 ngx realip 模組究竟有什麼實際用途呢?為什麼我們需要去改寫請求的 位址呢?答案是 當 nginx ...