centos7搭建nginx+lua+vod环境
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
背景
想着用nginx+vod搭建一个点播服务器但是对拉流URL的鉴权这块想着用lua来实现着就需要搭建一个nginx支持lua和vod的环境
配置服务器DNS
echo "nameserver 114.114.114.114" >> /etc/resolv.conf
安装网络工具
yum install wget ntpdate git -y
安装编译工具及依赖库
ntpdate ntp.aliyun.com
timedatectl set-timezone Asia/Shanghai
同步服务器时间
yum install -y gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel -y
安装luajit及配置环境变量
wget -c http://luajit.org/download/LuaJIT-2.0.4.tar.gz
tar xzvf LuaJIT-2.0.4.tar.gz
cd LuaJIT-2.0.4
make install PREFIX=/usr/cloudland/nginx/luajit
export LUAJIT_LIB=/usr/cloudland/nginx/luajit/lib
export LUAJIT_INC=/usr/cloudland/nginx/luajit/include/luajit-2.0
下载ngx_devel_kit模块
cd -
wget https://github.com/simpl/ngx_devel_kit/archive/v0.3.0.tar.gz
tar -xzvf v0.3.0.tar.gz
下载lua-nginx-module模块
wget https://github.com/openresty/lua-nginx-module/archive/v0.10.9rc7.tar.gz
tar -xzvf v0.10.9rc7.tar.gz
下载nginx-vod-module模块
这个模块是用来支持nginx点播功能的
wget https://github.com/kaltura/nginx-vod-module/archive/refs/tags/1.28.tar.gz
tar -zxvf 1.28.tar.gz
下载nginx并配置安装
wget https://nginx.org/download/nginx-1.20.1.tar.gz
tar -xzvf nginx-1.20.1.tar.gz
cd nginx-1.20.1
配置nginx编译选项
安装目录是/usr/cloudland/nginx
./configure --prefix=/usr/cloudland/nginx --with-http_ssl_module --with-http_flv_module --with-http_stub_status_module --with-http_gzip_static_module --with-http_realip_module --with-pcre --with-http_gunzip_module --with-file-aio --with-threads --with-cc-opt="-O3" --with-http_ssl_module --with-openssl-opt=enable --with-http_mp4_module --add-module=../lua-nginx-module-0.10.9rc7 --add-module=../ngx_devel_kit-0.3.0 --add-module=../nginx-vod-module-1.28/
make && make install
解决libluajit-5.1.so.2库缺失的问题
echo "$NGINX_INSTALL_PATH/luajit/lib" > /etc/ld.so.conf.d/usr_local_lib.conf
ldconfig
验证lua模块是否安装成功
编辑nginx的配置文件,在server块里添加lua的配置项目
vi /usr/cloudland/nginx/conf/nginx.conf
location /lua {
default_type 'text/plain';
content_by_lua 'ngx.say("hello, lua for vod")';
}
启动nginx进程
cd /usr/cloudland/nginx/
./sbin/nginx -p /usr/cloudland/nginx -c conf/nginx.conf
浏览器验证
http://172.24.0.74/lua
发现返回"hello, lua for vod"
若没有返回可能是有防火墙的问题没有通
curl验证
也可以在服务器上直接用curl命令验证
curl http://127.0.0.1/lua
通过浏览器和curl验证nginx lua模块已经加载成功
vod模块的验证
在nginx的配置文件里添加vod的相关配置
location /vod {
vod hls; # 协议使用hls模式
vod_mode local; # 访问模式指定为local模式
vod_align_segments_to_key_frames on; # 每个切片以关键帧开头
vod_manifest_segment_durations_mode accurate; # 精确显示每个切片的长度
}
随便拷贝一个视频文件到服务器的/media目录
VLC点播视频验证
打开URL:http://172.24.0.74/vod/720_filter.mp4/index.m3u8
即可看到视频的播放说明vod模块加载成功