为已安装 Nginx 添加 module 方法

Eric 杂记 170 次浏览 抢沙发

平时习惯通过系统自带软件源安装 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(站点配置文件也可能删除)。

发表评论

电邮地址用于 Gravatar 头像显示,不会被公开可见。