openresty(Nginx+lua-nginx-module)中各個階段執行的指令解釋及其執行順序

上圖來源:https://github.com/openresty/lua-nginx-module#directives

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*:記錄訪問日誌;


參考:https://github.com/openresty/lua-nginx-module
http://tengine.taobao.org/book/chapter_12.html#id8
http://jinnianshilongnian.iteye.com/blog/2186448

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章