为已安装的Nginx添加module操作方法

Kevin 教程 534 次浏览 抢沙发

为了安装和后续更新方便,平时习惯使用Nginx预构建版本,也就是通过包管理器安装。默认包括绝大多Nginx模块,省去了各项手动配置的麻烦。如果安装后要添加其它功能,需要下载Nginx源码重新编译。在配置里加入新的模块,并替换新执行文件。下面以添加nginx-rtmp-module为例介绍具体方法。

准备工作

1. 安装必要的软件工具,有下载、解压、编译器、Nginx依赖项等。

yum install -y wget unzip gcc gcc-c++ pcre pcre-devel openssl openssl-devel zlib zlib-devel

2. 运行nginx -V命令查看Nginx配置,复制configure arguments: 后面内容保存,之后要用到。

3. 下载同样版本Nginx和要添加模块的源码包,解压备用,操作路径可随意。

# Nginx源码包,这里我下载到/tmp目录操作
cd /tmp
wget https://nginx.org/download/nginx-1.14.1.tar.gz
tar zxf nginx-1.14.1.tar.gz

# 要添加的RTMP模块源码包,解压至默认模块目录
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 /tmp/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 | sed 's/ /\n/g'命令格式化查看编译参数。

注意事项

实际操作时需留意路径是否正确,不同系统和Nginx安装方式,默认路径可能不一样。另外编译步骤最后不要运行make install,不然会覆盖之前已安装的Nginx,配置文件也没了。

发表评论

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