1. 程式人生 > >在Nginx中利用lua指令碼獲取http請求路徑資訊

在Nginx中利用lua指令碼獲取http請求路徑資訊

文章來源:

1 獲取當前請求的url相關資訊

function test()
-- 這個變數等於包含一些客戶端請求引數的原始URI,它無法修改,請檢視$uri更改或重寫URI。
local request_uri = ngx.var.request_uri
 log(tools.gbk_to_u8("獲取當前請求的url==") .. tools.u8_to_gbk(cjson.encode(request_uri)) )

 -- HTTP方法(如http,https)。按需使用,例:
 local scheme = ngx.var.scheme server_addr
 log(tools.gbk
_to_u8("獲取當前請求的url scheme==") .. tools.u8_to_gbk(cjson.encode(scheme)) ) -- 伺服器地址,在完成一次系統呼叫後可以確定這個值,如果要繞開系統呼叫,則必須在listen中指定地址並且使用bind引數。 local server_addr = ngx.var.server_addruri log(tools.gbk_to_u8("獲取當前請求的url server_addr==") .. tools.u8_to_gbk(cjson.encode(server_addr)) ) -- 請求中的當前URI(不帶請求引數,引數位於$args),可以不同於瀏覽器傳遞的$request_uri的值,它可以通過內部重定向,或者使用index指令進行修改。 local uri = ngx.var
.uri log(tools.gbk_to_u8("獲取當前請求的url uri==") .. tools.u8_to_gbk(cjson.encode(uri)) ) -- 伺服器名稱 local server_name = ngx.var.server_name log(tools.gbk_to_u8("獲取當前請求的url server_name ==") .. tools.u8_to_gbk(cjson.encode(server_name )) -- 請求到達伺服器的埠號。 local server_port = ngx.var.server_name log(tools.gbk
_to_u8("獲取當前請求的url server_port ==") .. tools.u8_to_gbk(cjson.encode(server_port )) end test()

2.獲取傳送請求端過來的url相關資訊

-- 獲取遠端的IP地址。
local remote_addr  = ngx.var.remote_addr 
 log(m_uuid,tools.gbk_to_u8("獲取傳送請求過來的遠端請求remote_addr ==") .. tools.u8_to_gbk(cjson.encode(remote_addr )) )

 -- 獲取遠端的埠號
 local remote_port  = ngx.var.remote_port  
 log(m_uuid,tools.gbk_to_u8("獲取傳送請求過來的遠端請求remote_port ==") .. tools.u8_to_gbk(cjson.encode(remote_port )) )