nginx安装很简单,但是有的时候是已经安装的nginx ,升级增加nginx 模块功能。
最近公司要nginx增加一个可以播放 MP4的模块,安装还算顺利,不说废话上命令。
1 安装依赖
yum install -y make zilb-devel openssl-devel pcre-devel libaio libaio-devel
wget http://nginx.org/download/nginx-1.10.3.tar.gz
#创建用户和用户组
groupadd www
useradd -s /sbin/nologin -M -g www www
#解压
tar -zxvf nginx-1.10.3.tar.gz
#进入nginx安装目录
cd nginx-1.10.3
#配置 编译安装
./configure --user=www --group=www
--prefix=/usr/local/nginx
--with-http_stub_status_module
--with-http_ssl_module
--with-http_gzip_static_module
--with-http_gunzip_module
--with-file-aio
--with-http_flv_module
make && make install
#进入nginx sbin启动
cd /usr/local/nginx/sbin
./nginx
至此安装完毕
下面是在原有nginx 基础上 增加MP4播放功能模块
首先下载 nginx_mod_h264_streaming-2.2.7.tar.gz
wget http://h264.code-shop.com/download/nginx_mod_h264_streaming-2.2.7.tar.gz
tar -xvf nginx_mod_h264_streaming-2.2.7.tar.gz
#重点来了
vim nginx_mod_h264_streaming-2.2.7
NGINX=$(HOME)/nginx-1.10.3/ #这里修改自己的nginx版本
#vim nginx_mod_h264_streaming-2.2.7/src/ngx_http_streaming_module.c
以下
TODO: Win32
if (r->zero_in_uri)
{
return NGX_DECLINED;
}
改成
/*
TODO: Win32
if (r->zero_in_uri)
{
return NGX_DECLINED;
}
*/
#然后再次进入nginx的安装目录
cd nginx-1.10.3
./configure --user=www --group=www
--add-module=/usr/local/src/nginx_mod_h264_streaming-2.2.7
--prefix=/usr/local/nginx
--with-http_mp4_module
--with-http_flv_module
--with-http_stub_status_module
--with-http_ssl_module
--with-http_gzip_static_module
--with-http_gunzip_module
--with-file-aio
--with-http_flv_module
#注意这里只编译 不安装
make
#修改nginx配置文件,强烈建议修改备份,我这里是直接添加nginx Vhost的方式 直接在nginx的conf 下的conf.d 下面直接添加下面的server
server {
listen 80;
server_name 你的域名;
root html;
index index.html index.htm;
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
location ~*.(jpg|png|gif)$ {
root /data/www/oul;
}
location ~* .*.mp4$ {
root /data/www/oul;
mp4;
}
}
注意下 这个关键步骤
备份您的
cd /usr/local/nginx/sbin
cp nginx nginx.bak
复制新编译好的nginx执行文件
cp /root/cd nginx-1.10.3/objs/nginx /usr/local/nginx/sbin/nginx
找一个MP4视频文件放到nginx网站目录默认是/usr/local/nginx/html 下面
重启 nginx
有个坑 ,注意修改nginx的vhost的根访问文件夹 必须重启 reload 不起作用!!!
另外 nginx如果增加其他功能模块的过程大多这样 注意 make 只编译不要执行安装备份还你要修改的文件。