为已安装 Nginx 添加 module 方法
平时习惯通过系统自带软件源安装 Nginx,默认包括了大多常用 Nginx 模块。如果在安装后要添加其它模块,需要下载 Nginx 源码编译安装。在配置里加入新的模块,并替换新执行文件。
下面以添加 nginx-rtmp-module 为例介绍具体操作方法。
准备工作
1. 安装必要的软件,有解压工具、编译器、其它依赖项等。
yum install -y unzip gcc gcc-c++ pcre pcre-devel openssl openssl-devel zlib zlib-devel
2. 运行 nginx -V
查看 Nginx 配置,复制 configure arguments:
后面内容保存备用。
3. 下载相同版本 Nginx 和要添加模块的源码包,解压备用。
# 下载解压 Nginx,放在储存源代码标准目录 cd /usr/local/src wget https://nginx.org/download/nginx-1.14.1.tar.gz tar zxf nginx-1.14.1.tar.gz # 下载要添加的模块,解压至默认模块目录 cd /usr/lib64/nginx/modules wget https://github.com/arut/nginx-rtmp-module/archive/master.zip unzip master.zip
编译添加
1. systemctl stop nginx
关闭正在运行的 Nginx 服务。
2. 进入之前解压的 Nginx 目录,运行下面命令编译一遍。红色部分为添加模块。
cd /usr/local/src/nginx-1.14.1 ./configure [此处粘贴之前查询的Nginx编译参数] --add-module=/usr/lib64/nginx/modules/nginx-rtmp-module-master make
3. 编译后会在当前 objs 目录下生成 nginx 执行文件,在备份原文件后用其替换。
mv /usr/sbin/nginx /usr/sbin/nginx.bak cp -fp /tmp/nginx-1.14.1/objs/nginx /usr/sbin
4. 到此编译添加完成,systemctl start nginx
恢复服务运行。
要确认是否添加成功,可用 nginx -V 2>&1 | tr ' ' '\n' | grep '_module'
命令格式化查看编译参数。
注意事项
实际操作时需留意路径是否正确,不同系统和 Nginx 安装方式,默认路径可能不一样。另外编译步骤最后不要运行 make install
。不然可能会覆盖之前已安装的 Nginx(站点配置文件也可能删除)。