Openresty各個階段的執行次序

2021-09-29 23:37:42 字數 1172 閱讀 4587

init_by_lua*:初始化 nginx 和預載入 lua(nginx 啟動和 reload 時執行);

init_worker_by_lua*:每個工作程序(worker_processes)被建立時執行,用於啟動一些定時任務,

比如心跳檢查,後端服務的健康檢查,定時拉取伺服器配置等;

ssl_certificate_by_lua*:對 https 請求的處理,即將啟動下游 ssl(https)連線的 ssl 握手時執行,用例:按照每個請求設定 ssl 證書鏈和相應的私鑰,按照 ssl 協議有選擇的拒絕請求等;

set_by_lua*:設定 nginx 變數;

rewrite_by_lua*:重寫請求(從原生 nginx 的 rewrite 階段進入),執行內部 url 重寫或者外部重定向,典型的如偽靜態化的 url 重寫;

access_by_lua*:處理請求(和 rewrite_by_lua 可以實現相同的功能,從原生 nginx 的 access階段進入);

content_by_lua*:執行業務邏輯並產生響應,類似於 jsp 中的 servlet;

balancer_by_lua*:負載均衡;

header_filter_by_lua*:處理響應頭;

body_filter_by_lua*:處理響應體;

log_by_lua*:記錄訪問日誌;

參考

lua 根據函式名字串來執行函式

function myfunction(msg)

print("this is msg fun " .. msg);

endlocal fun =_g["myfunction"];

if fun then

fun("is ok");

end

OpenResty 核心執行階段篇

前兩篇分別介紹了openresty核心概念和,優勢與架構等資訊,進行本篇之前建議至少 一遍。之前篇章介紹了openresty是基於nginx為基礎核心的開發平台,本篇將繼續介紹基礎平台 nginx 的主要特性。openresty將應用分為 個大階段,11個小階段,如下圖所示。開發中常用的7階段 ro...

軟體測試的各個階段

軟體測試的各個階段 這幾個階段其實就是乙個pdca 戴明迴圈 p plan 代表計畫,d do 代表執行,c check 代表檢查,a action 代表處理。1.測試需求 資料表明,超過50 的缺陷 於錯誤的需求,所以對於需求文件,應該遵循盡早測試的原則,對需求進行測試。a.對需求規格說明數進行要...

c 各個階段解釋

由多個原始檔組成的c程式,經過編輯 預處理 編譯,鏈結等階段會生成最終的可執行程式。下面哪個階段可以發現被呼叫的函式未定義?a 預處理 b 編譯 c 鏈結 d 執行 a 預處理是 c語言程式從源 變成可執行程式的第一步,主要是 c語言編譯器對各種預處理命令進行處理,包括標頭檔案的包含 巨集定義的擴充...