2019年4月12日 星期五

[野人獻曝] 動態載入 nginx 模組

因為某些原因想要不重新編譯 nginx ,
又想要用某個模組的功能,
所以就想到 nginx 可以動態載入模組的功能!

首先需要的東西如下:
  • 要使用的 nginx 版本必須為 1.9.11 以上......除非真的太舊否則這應該不是問題
  • 跟你目前使用版本相符的 nginx 原始碼(完整版本列表
  • 你想要使用模組的原始碼,要確保該模組可以使用動態載入功能

操作方法如下:
  • 打開你的 terminal 視窗,輸入 nginx -V ,這會列出當初編譯安裝時使用的參數,內容大概就是:configure arguments: --add-module=xxxx --with-pcre 之類的內容,請把 -- 後面的字串複製下來備用。
  • 將你稍早下載的原始碼解壓縮某目錄下,這裡就假設是 /my/nginx-source
  • 把你下載的模組原始碼解壓縮到某目錄下,這裡就假設是 /my/nginx-modules 
  • 切換到 /my/nginx-source,輸入 ./configure 加上剛才的 nginx -V 內容,最後多加 --add-dynamic-module=/my/nginx-modules 後按下 enter。如此就會根據原本的編譯參數再加上新設定的動態模組參數準備編譯。
  • 接著再輸入 make modules,就會開始編譯模組
  • 編譯完的模組會放在 /my/nginx-source/objs 下,你可以把需要的模組檔複製到其他地方備用。
  • 接下來打開你的 nginx 設定檔(通常在 /etc/nginx/nginx.conf),在最上方加入 load_module 模組檔路徑; 後重新啟動 nginx 就可以生效了。

沒有留言: