CentOS 7的源所提供的nginx幾乎不包含任何擴展模塊;為了能夠使用一些擴展模塊,我們需要從源代碼重新編譯安裝nginx。
目前最新版的源代碼是1.6.1。下載解壓后先不要急着configure,先看看CentOS本身提供的nginx的configure選項:
# nginx -V
我們盡量使用相同的configure選項重新編譯,以使用一致的執行文件與配置文件位置。原有的configure選項中,只需去掉--with-cc-opt和--with-ld-opt選項即可。
將我們需要的擴展模塊下載下來后,使用下面的指令在nginx源代碼目錄進行configure(可能先要yum install gcc-c++):
# auto/configure …… --add-module=../ngx_http_substitutions_filter_module/
上面的指令中,--add-module=后面是擴展模塊源代碼目錄。有多個擴展模塊就用多個--add-module。
configure過程中可能會多次抱怨缺某某依賴,一般用yum -y install xxxx-devel就能解決。(編譯過程需要這些依賴庫的頭文件,所以我們要安裝xxx-devel。)
幾個名字不明顯的package:
yum -y install perl-ExtUtils-Embed
yum -y install google-perftools
yum -y install google-perftools-devel
make之后sudo make install。
因為我們繼承了原有nginx的編譯配置,所以install后原有的配置文件、日志、執行文件等全都保持在原來的地方,直接systemctl restart nginx即可。