Nginx監控請求lua指令碼

2021-06-13 05:11:02 字數 1463 閱讀 6395

當應答狀態碼不是200時,通過udp向伺服器傳送報告。

monitor.lua

-- 

-- config nginx.conf:

---- set $str $uri;

-- content_by_lua_file;

-- -- location /proxy $str;

-- }

----

-- extends int to 4 byte

--function pad32bit(num)

local hex = ""

local rem = num

for i=1,4 do

local bit = rem % 256

rem = math.floor(rem /256)

hex = hex .. string.char(bit)

endreturn hex

endlocal url = ngx.var.uri

local res = ngx.location.capture("/proxy", })

-- response

ngx.say(res.body)

-- send udp message

if res.status ~= 200 then

-- protocol

-- length | version | top-level no (4) | second-level no | json body

--local mydata = require "mydata"

--local udpsock = mydata:socket()

local udpsock = ngx.socket.udp()

udpsock:settimeout(0)

local ok, err = udpsock:setpeername("224.3.29.71", 10000)

local body = "host:" .. ngx.var.host .. ", url:" .. url .. ", status:" .. res.status

local leng = 4 + 3 + string.len(body)

local msg = pad32bit(leng) .. "\1\4\1" .. body

ngx.say("")

local ok, err = udpsock:send(msg)

end

nginx.conf

upstream web

server

location /proxy

--local mydata = require "mydata"

--local udpsock = mydata:socket()

這種方式只能共享基本型別,不能共享socket

Nginx 使用Lua指令碼

etc profile 加入並使之生效 lua exportluajit lib usr local luajit lib exportluajit inc usr local luajit include luajit 2.0 執行 source etc profile ndk nginx dev...

nginx和lua指令碼環境搭建

openresty 安裝lua的執行環境 tar zxvf nginx 1.10.0.tar.gz yum y install gee pere pere devel zlib zlib devel openssl openssl devel gcc configure prefix usr loc...

nginx編譯安裝支援lua指令碼

一 準備編譯環境 1 作業系統 centos7.6 2 安裝編譯所需安裝包 yum install gcc pcre pcre devel zlib zlib devel openssl openssl devel y gcc 編譯環境 pcre是乙個perl庫,包括perl相容的正規表示式庫,ng...