Nginx
將 LUA 建構為動態 Nginx 模組
我發現要將 LUA 與 Nginx 一起使用,我需要:
- 使用 OpenResty 平台:https ://openresty.org/en/installation.html
- 支付 getpagespeed 訂閱以獲取模組 RPM
- 從原始碼建構帶有 LUA 模組的 Nginx,例如https://tarunlalwani.com/post/building-nginx-with-lua/
我想知道如何建構模組本身,然後將其載入到打包的 Nginx 中。我不願意建構 Nginx,因為這意味著我會失去包更新。我怎樣才能做到這一點?
我想知道如何建構模組本身,然後將其載入到打包的 Nginx 中。
要建構模組本身,您可以獲取 NGINX 模組的任何現有模組 SRPM 並根據需要進行調整。最重要的是確保您傳遞
--with-compat
給 NGINX 配置腳本,這樣模組就不必使用與您將使用它的 NGINX 完全相同的參數進行編譯。您還必須為 建構一個單獨的包
luajit2
,以從更快的 Lua 執行中受益(或確保它在模組包中靜態連結)。建構單獨的
luajit2
包是個好主意,因為它與模組解耦,您可以在新版本發佈時單獨更新它。然後,您必須監視 NGINX 版本/模組/luajit2 庫版本以不斷重建模組/庫包,然後將其應用到您手動設置的儲存庫。
在一天結束的時候,我們認為自己做這整個事情有點過頭了,並選擇了 GetPageSpeed 儲存庫,它提供了 Lua 模組和更快的 luajit2。我說它節省了一些錢,因為 NGINX 主線大約每 4 到 6 週發布一次,我們可以只
yum upgrade
使用新的 NGINX/模組(那裡不僅有 Lua 模組,而且我們還使用它們的 PageSpeed 和 Brotli)。上面提到的 OpenResty 的免費軟體替代品並沒有削減它,因為它們往往依賴於舊的 NGINX 版本,我們想要最新的主線 NGINX 可用。
對於一個業餘項目,我會說不要打擾並編譯它。但是對於生產案例,由於安全風險和所有維護麻煩,我不建議編譯。