nginx编译后怎么新增新的模块

编译安装的nginx后期需要扩展功能添加新的安装,以下是编译新模块的方法。

案例:nginx编译后,需要安装nginx_rtmp_module第三方视频模块

1. 查看历史编译信息

首先我们先查看我们之前编译的时候都编译了那些参数:

# /usr/local/nginx/sbin/nginx -V     #用此命令查看已编译信息(注意命令里的路径是nginx主程序路径)

我的结果是

# /usr/local/nginx/sbin/nginx -V

nginx version: nginx/1.8.1
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
built with OpenSSL 1.0.2k-fips  26 Jan 2017
TLS SNI support enabled
configure arguments: --user=nginx --group=nginx --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_gzip_static_module --with-http_realip_module --with-http_sub_module --with-http_ssl_module --add-module=/usr/src/ngx-fancyindex

2.下载第三方模块

下载第三方模块到本地(本文下载到/usr/src/)

# cd /usr/src/
# wget -c https://github.com/arut/nginx-rtmp-module/archive/master.zip

解压

# unzip master.zip

3.编译

如果之前的nginx解压目录还在的话最好,如果没有了就去官网下载一个相同版本的nginx解压,进入目录重新编译,把上面查到之前编译的参数都带上,后面加上--add-module=第三方模块路径,添加上需要新增的模块。

--user=nginx --group=nginx --prefix=/usr/local/nginx\
 --with-http_stub_status_module\
 --with-http_gzip_static_module\
 --with-http_realip_module\
 --with-http_sub_module\
 --with-http_ssl_module\
 --add-module=/usr/src/ngx-fancyindex/\
 --add-module=/usr/src/nginx-rtmp-module-master

执行之后make下,make执行时间可能有点长 make之后千万别make install

4.拷贝新的程序文件

执行make后,当前目录会生成一个objs目录,进入这个目录

目录下会产生一个新的nginx程序文件,这个就是新的程序文件,把之前的备份,产生新的拷贝过去

# cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
# cp /usr/src/nginx-1.8.1/objs/nginx /usr/local/nginx/sbin/nginx

拷贝过去之后我们再次查询下nginx都编译了那些参数

# /usr/local/nginx/sbin/nginx -V


nginx version: nginx/1.8.1
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
built with OpenSSL 1.0.2k-fips  26 Jan 2017
TLS SNI support enabled
configure arguments: --user=nginx --group=nginx --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_gzip_static_module --with-http_realip_module --with-http_sub_module --with-http_ssl_module --add-module=/usr/src/ngx-fancyindex --add-module=/usr/src/nginx-rtmp-module-master

发现新增的参数已经添加上了
接下来就可以去使用了.

最后修改:2021 年 04 月 29 日 10 : 59 AM