如何給nginx添加外部模塊
以第三方openresty提供的模塊:echo-nginx-module 爲例,演示如何給已經安裝好的nginx添加外部模塊。
前提介紹
測試機的nginx目錄在: /usr/local/nginx
使用ls
可以查看該目錄下的內容如下:
client_body_temp html nginx-1.13.9 proxy_temp scgi_temp
conf fastcgi_temp logs nginx-1.13.9.tar.gz sbin uwsgi_temp
下載第三方模塊
進入 /usr/local/nginx
,目錄操作。可以使用命令下載:
wget https://github.com/openresty/echo-nginx-module/archive/v0.61.tar.gz
解壓+重命名
下載後會保存到一個 v0.61 的目錄,其實是 v0.61.tar.gz
,可以使用以下命令解壓:
tar -zxvf v0.61
解壓後會看到一個目錄 echo-nginx-module-0.61
生成了,可以將其重命名一下:
mv echo-nginx-module-0.61 echo-nginx-module
重新編譯+add新模塊
因爲已經安裝好了nginx, 所以只需要重新編譯添加模塊即可,以下是詳細操作步驟。
切換目錄
cd /usr/local/nginx/nginx-1.13.9
使用命令--add-module
添加模塊
./configure --prefix=/usr/local/nginx --add-module=/usr/local/nginx/echo-nginx-module
make生成可執行的二進制文件nginx
make
到此爲止,會在目錄 /usr/local/nginx/nginx-1.13.9/objs
生成一個可執行的二進制文件 nginx。
對於已經安裝好的nginx,只需要make即可; make後會在objs目錄生成一個新的nginx可執行文件,替換原來的即可(記得備份一下)
備份
備份原來的可執行nginx文件:
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.back
覆蓋
使用新的覆蓋舊的可執行二進制文件:
cp /usr/local/nginx/nginx-1.13.9/objs/nginx /usr/local/nginx/sbin/nginx
修改配置文件nginx.conf
location / {
root html;
index index.html index.htm;
# mime類型改成這個,不然默認的是二進制流;會變成文件下載的方式...
default_type text/plain;
echo "This is echo module:192.168.75.134";
}
啓動測試
重新啓動nginx服務,然後瀏覽器訪問測試,會在瀏覽器顯示:
This is echo module:192.168.75.134