nginx新增網上很多動態的第三方模組教程,都是在講./configure後替換nginx執行檔案,今天我嘗試以一波他們的方法沒有成功,記錄下我的操作。
環境和版本:centos7 niginx1.16
前提,ng想要動態的可擴充套件第三方模組必須要編譯安裝才行,所以yum安裝的洗洗睡吧
./configure --prefix=/data/nginx
這是初始化ng的安裝目錄,後面指定的是ng安裝目錄,其實這句命令也是後期加模組的命令,比如這次我加的模組執行的命令是:
./configure --prefix=/data/nginx --add-module=../ngrtmp
後面會單獨解釋此命令。
在初始化完ng後,直接make&&make install即可安裝ng。
啟動ng是在安裝的努力下sbin目錄中的nginx二進位制檔案,./nginx即可啟動
新增模組我們需要在ng的二進位制啟動檔案中新增模組資訊,之後重啟ng二進位制檔案就能夠呼叫裡面的第三方模組了,如何在已經編譯好的二進位制檔案中新增新模組資訊?只能重新初始化ng,產生乙個新的ng二進位制檔案,然後替換掉原有的二進位制啟動檔案。注意:是不能在原有ng二進位制檔案中直接新增的哦。
所以有了以下命令:
./configure --prefix=/data/nginx --add-module=../ngrtmp
初始化乙個新的二進位制檔案並在檔案中新增第三方模組資訊,--add-module就是新增命令,指向第三方模組位置。由於這裡只是初始化ng源**,並沒有安裝,所以並不會影響已經安裝啟動的ng應用。新的ng二進位制啟動檔案在ng原始碼資料夾的objs目錄下。直接把這個nginx二進位制檔案替換掉安裝檔案目錄下sbin目錄中的原nginx二進位制檔案即可。這裡網上說不能make和make install操作,否則會覆蓋安裝。但是,我卻用的make 和make install,原因如下:
按照網上的操作,初始化後就會有乙個新的nginx二進位制檔案產生,然而我./configure後並沒有產生新的nginx。原因猜測可能如下,並沒有去證實:
注意事項:在make之前我是關閉了在執行的老ng執行緒。執行新的初始化之前,需要帶上老的初始化資訊,在sbin目錄下./nginx -v,會顯示老的./configure資訊,新的初始化,需要帶上這些老的資訊再新增 add引數新增第三方模組。
nginx安裝第三方模組
nginx正常安裝第三方模組的方式如下 configure prefix 你的安裝目錄 add module 第三方模組目錄在未安裝nginx的情況下,安裝第三方模組的方式如下 add module ngx pagespeed master add module 第三方模組目錄 make make ...
nginx 安裝第三方模組
nginx內部是由一些核心和非核心的第三方模組構成,模組化可以通過整合第三方模組實現擴充套件功能。核心模組 ngx http core module 標準模組 http模組 第三方模組 預設支援的模組 ngx http core module 模組 包括 nginx.conf 中的 http段中的 ...
nginx安裝第三方模組
nginx檔案非常小,但是效能非常的高效,這方面完勝apache,nginx檔案小的乙個原因之一是nginx自帶的功能相對較少,好在nginx允許第三方模組,第三方模組使得nginx越發的強大.在安裝模組方面,nginx顯得沒有apache安裝模組方便,當然也沒有php安裝擴充套件方便.在原生的ng...