国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

nginx的lua api

FreeZinG / 3484人閱讀

摘要:重定向狀態(tài)碼設(shè)置響應(yīng)的狀態(tài)碼獲取設(shè)置的響應(yīng)狀態(tài)碼發(fā)送響應(yīng)狀態(tài)碼,當(dāng)調(diào)用時自動發(fā)送響應(yīng)狀態(tài)碼可以通過判斷是否發(fā)送了響應(yīng)狀態(tài)碼。

基本api ngx.var

nginx 變量,如果要賦值如 ngx.var.b = 2,此變量必須提前聲明;另外對于 nginx location 中使用正則捕獲的捕獲組可以使用 ngx.var [捕獲組數(shù)字]獲取;

ngx.req.get_headers

獲取請求頭,默認(rèn)只獲取前100,如果想要獲取所以可以調(diào)用ngx.req.get_headers(0);獲取帶中劃線的請求頭時請使用如 headers.user_agent 這種方式;如果一個請求頭有多個值,則返回的是 table;

ngx.req.get_uri_args

獲取 url 請求參數(shù),其用法和 get_headers 類似;

ngx.req.get_post_args

獲取 post 請求內(nèi)容體,其用法和 get_headers 類似,但是必須提前調(diào)用 ngx.req.read_body() 來讀取 body 體(也可以選擇在 nginx 配置文件使用lua_need_request_body on;開啟讀取 body 體,但是官方不推薦);

ngx.req.raw_header

未解析的請求頭字符串;

ngx.req.get_body_data

為解析的請求 body 體內(nèi)容字符串。

ngx.redirect

重定向;

ngx.status= 狀態(tài)碼

設(shè)置響應(yīng)的狀態(tài)碼;

ngx.resp.get_headers()

獲取設(shè)置的響應(yīng)狀態(tài)碼;

ngx.send_headers()

發(fā)送響應(yīng)狀態(tài)碼,當(dāng)調(diào)用 ngx.say/ngx.print 時自動發(fā)送響應(yīng)狀態(tài)碼;可以通過 ngx.headers_sent=true 判斷是否發(fā)送了響應(yīng)狀態(tài)碼。

ngx.escape_uri/ngx.unescape_uri

uri 編碼解碼;

ngx.encode_args/ngx.decode_args

參數(shù)編碼解碼;

ngx.encode_base64/ngx.decode_base64

BASE64 編碼解碼;

ngx.re.match

nginx 正則表達(dá)式匹配;

var及req實例
--nginx變量  
local var = ngx.var  
ngx.say("ngx.var.a : ", var.a, "
") ngx.say("ngx.var.b : ", var.b, "
") ngx.say("ngx.var[2] : ", var[2], "
") ngx.var.b = 2; ngx.say("
") --請求頭 local headers = ngx.req.get_headers() ngx.say("headers begin", "
") ngx.say("Host : ", headers["Host"], "
") ngx.say("user-agent : ", headers["user-agent"], "
") ngx.say("user-agent : ", headers.user_agent, "
") for k,v in pairs(headers) do if type(v) == "table" then ngx.say(k, " : ", table.concat(v, ","), "
") else ngx.say(k, " : ", v, "
") end end ngx.say("headers end", "
") ngx.say("
") --get請求uri參數(shù) ngx.say("uri args begin", "
") local uri_args = ngx.req.get_uri_args() for k, v in pairs(uri_args) do if type(v) == "table" then ngx.say(k, " : ", table.concat(v, ", "), "
") else ngx.say(k, ": ", v, "
") end end ngx.say("uri args end", "
") ngx.say("
") --post請求參數(shù) ngx.req.read_body() ngx.say("post args begin", "
") local post_args = ngx.req.get_post_args() for k, v in pairs(post_args) do if type(v) == "table" then ngx.say(k, " : ", table.concat(v, ", "), "
") else ngx.say(k, ": ", v, "
") end end ngx.say("post args end", "
") ngx.say("
") --請求的http協(xié)議版本 ngx.say("ngx.req.http_version : ", ngx.req.http_version(), "
") --請求方法 ngx.say("ngx.req.get_method : ", ngx.req.get_method(), "
") --原始的請求頭內(nèi)容 ngx.say("ngx.req.raw_header : ", ngx.req.raw_header(), "
") --請求的body內(nèi)容體 ngx.say("ngx.req.get_body_data() : ", ngx.req.get_body_data(), "
") ngx.say("
") --未經(jīng)解碼的請求uri local request_uri = ngx.var.request_uri; ngx.say("request_uri : ", request_uri, "
"); --解碼 ngx.say("decode request_uri : ", ngx.unescape_uri(request_uri), "
"); --MD5 ngx.say("ngx.md5 : ", ngx.md5("123"), "
") --http time ngx.say("ngx.http_time : ", ngx.http_time(ngx.time()), "
")
resp實例
--寫響應(yīng)頭  
ngx.header.a = "1"  
--多個響應(yīng)頭可以使用table  
ngx.header.b = {"2", "3"}  
--輸出響應(yīng)  
ngx.say("a", "b", "
") ngx.print("c", "d", "
") --200狀態(tài)碼退出 return ngx.exit(200) ngx.header:輸出響應(yīng)頭; ngx.print:輸出響應(yīng)內(nèi)容體; ngx.say:通ngx.print,但是會最后輸出一個換行符; ngx.exit:指定狀態(tài)碼退出。
doc

Nginx+Lua 開發(fā)入門

lua-nginx-module#readme

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/39369.html

相關(guān)文章

  • LuaNginx應(yīng)用

    摘要:例如響應(yīng)部分通過的形式獲取或設(shè)置響應(yīng)頭信息。以某個狀態(tài)碼返回響應(yīng)內(nèi)容,狀態(tài)碼常量對應(yīng)關(guān)系見部分,也支持?jǐn)?shù)字形式的狀態(tài)碼。重定向當(dāng)前請求到新的,響應(yīng)狀態(tài)碼可選列表為默認(rèn)。具體內(nèi)容如下相關(guān)文章進(jìn)入的世界在的應(yīng)用 首發(fā)于 樊浩柏科學(xué)院 當(dāng) Nginx 標(biāo)準(zhǔn)模塊和配置不能靈活地適應(yīng)系統(tǒng)要求時,就可以考慮使用 Lua 擴(kuò)展和定制 Nginx 服務(wù)。OpenResty 集成了大量精良的 Lua 庫...

    Mike617 評論0 收藏0
  • nginx lua api解讀

    摘要:對于需要進(jìn)一步注意的是參數(shù)的使用,可以傳入所定義的所有的狀態(tài)碼常量如等和兩個模塊內(nèi)核常量只支持和這兩個,如果傳入其他的如等則進(jìn)程住。 序 本文主要解讀下nginx lua module的主要方法和api。 ngx_lua運行階段 showImg(https://segmentfault.com/img/bVHFqI?w=1005&h=910); initialization phase...

    shery 評論0 收藏0
  • 【技術(shù)干貨】聽阿里云CDN安防技術(shù)專家金九講tengine+lua開發(fā)

    摘要:例如設(shè)置響應(yīng)狀態(tài)碼并退出注意,設(shè)置狀態(tài)碼僅在響應(yīng)頭發(fā)送前有效,并且該函數(shù)調(diào)用之后該函數(shù)后面的將被忽略掉,因為已經(jīng)了。 一、介紹 二、安裝 三、運行 四、開發(fā) 1. 介紹 Tengine:輕量級、高性能、高并發(fā)、配置化、模塊化、可擴(kuò)展、可移植的Web和反向代理 服務(wù)器,Tengine是nginx超集,但做了很多優(yōu)化,包含了很多比較有用的模塊,比如直接包含了lua、proc等很...

    番茄西紅柿 評論0 收藏0
  • 【技術(shù)干貨】聽阿里云CDN安防技術(shù)專家金九講tengine+lua開發(fā)

    摘要:例如設(shè)置響應(yīng)狀態(tài)碼并退出注意,設(shè)置狀態(tài)碼僅在響應(yīng)頭發(fā)送前有效,并且該函數(shù)調(diào)用之后該函數(shù)后面的將被忽略掉,因為已經(jīng)了。 一、介紹 二、安裝 三、運行 四、開發(fā) 1. 介紹 Tengine:輕量級、高性能、高并發(fā)、配置化、模塊化、可擴(kuò)展、可移植的Web和反向代理 服務(wù)器,Tengine是nginx超集,但做了很多優(yōu)化,包含了很多比較有用的模塊,比如直接包含了lua、proc等很...

    Hegel_Gu 評論0 收藏0
  • nginxupstream異常

    摘要:異常與默認(rèn)值為默認(rèn)值為秒。實驗請求里頭的會發(fā)起一個,請求請求一次對逐個請求,都失敗,則的返回,對返回的取決于腳本再請求一次該下面的都掛的情況下出現(xiàn)中健康檢查機制深入分析容錯機制原創(chuàng)胡志廣線上的一次分析 異常 upstream server temporarily disabled while connecting to upstream no live upstreams while...

    kun_jian 評論0 收藏0
  • Nginx-深度學(xué)習(xí)篇

    摘要:深度學(xué)習(xí)篇一動靜分離通過中間件將動態(tài)請求和靜態(tài)請求進(jìn)行分離。原因分離資源,減少不必要的請求消耗,減少請求延時。關(guān)閉后,重定向會失效。驗證規(guī)則保持一致。啟動,也會要求你輸入密碼。根據(jù)用戶的信息等信息區(qū)別根據(jù)用戶的地址實現(xiàn)灰度發(fā)布示意圖 Nginx-深度學(xué)習(xí)篇 一、動靜分離 通過中間件將動態(tài)請求和靜態(tài)請求進(jìn)行分離。原因:分離資源,減少不必要的請求消耗,減少請求延時。 動態(tài)和靜態(tài)請求圖例:s...

    wh469012917 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<