搭建nginx服务器和直播流媒体服务器

1、nginx简单说明

  ①  Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强。

  ②  Nginx作为Http服务器,有以下几项基本特征:

    b.1 处理静态文件,索引文件以及自动索引,打开文件描述符缓冲。

    b.2 无缓存的反向代理加速,简单的负载均衡和容错

    b.3 模块化的结构,包括gzipping,byte ranges,chunked responses以及SSI-filter等filter,如果由FastCGI或其它代理服务器处理蛋液中存在的多个SSI,则这项处理可以并行运行,而不需要相互等待。

    b.4 支持SSL和TLSSNI。

  ③  nginx官方网址:http://nginx.org/

2、下载nginx-rtmp-module

  如果需要搭建直播流媒体服务器,则可以在安装nginx的同时指定一下rtmp-module,这样安装好的nginx服务器就具备直播的功能。

  nginx-rtmp-module的官方github地址:https://github.com/arut/nginx-rtmp-module

  使用git命令进行下载:

git clone https://github.com/arut/nginx-rtmp-module.git  

  注: 如果没有安装git,可以通过命令 yum  groupinstall "Development Tools" 安装相关的软件

nginx拥有ssl功能,gzip模块和rewrite模块,因此安装nginx的时候需要先安装openssl库,zlib库,pcre库。

3、安装openssl库

  说明: OpenSSL 是一个安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。

  官网地址:https://www.openssl.org/source/

  安装步骤:

1 wget https://www.openssl.org/source/openssl-1.0.2m.tar.gz
2 tar -zxvf openssl-1.0.2m.tar.gz
3 cd openssl-1.0.2m
4 ./config
5 make
6 make install

4、安装zlib库

  说明:zlib是提供数据压缩用的函式库,由Jean-loup Gailly与Mark Adler所开发,初版0.9版在1995年5月1日发表。zlib使用DEFLATE算法,最初是为libpng函式库所写的,后来普遍为许多软件所使用。此函式库为自由软件,使用zlib授权。

  官方网址:http://www.zlib.net/

  安装步骤:

1 wget http://www.zlib.net/zlib-1.2.11.tar.gz
2 tar -zxvf zlib-1.2.11.tar.gz
3 cd zlib-1.2.11
4 ./configure
5 make
6 make install

5、安装pcre库

  说明: PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。这些在执行正规表达式模式匹配时用与Perl 5同样的语法和语义是很有用的。Boost太庞大了,使用boost regex后,程序的编译速度明显变慢。测试了一下,同样一个程序,使用boost::regex编译时需要3秒,而使用pcre不到1秒。因此改用pcre来解决C语言中使用正则表达式的问题。

  官方网址:http://www.pcre.org/

  安装步骤:

1 wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre2-10.21.tar.gz
2 tar -xzvf pcre2-10.21.tar.gz
3 cd pcre2-10.21
4 ./configure
5 make
6 make install

6、下载nginx

  安装完成nginx前置要求过后,就可以开始安装nginx了。

  安装步骤:

1 wget http://nginx.org/download/nginx-1.13.6.tar.gz
2 tar -xzvf nginx-1.13.6.tar.gz
3 cd nginx-1.13.6
4 ./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module  --with-http_gzip_static_module --with-ipv6 --with-http_flv_module --add-module=/usr/local/nginx/buildpath/nginx-rtmp-module
5 make
6 make install

  注: 编译时指定了用户,目录,如果不需要直播,可以将最后面的--add-module去掉

7、启动查看nginx是否正常

1 cd /usr/local/nginx/
2 sbin/nginx -s
3 sbin/nginx

  如果启动nginx时出现错误:

   这个是由于没有创建nginx的用户,创建用户:

1 useradd -s /sbin/nologin -M nginx
2 id nginx

8、将nginx注册成服务

  ①  使用命令 vi /etc/init.d/nginx,开发编辑器,输入内容:

 1 #!/bin/sh
 2 # chkconfig: 2345 85 15
 3 # Startup script for the nginx Web Server
 4 # description: nginx is a World Wide Web server.
 5 # It is used to serve HTML files and CGI.
 6 # processname: nginx
 7 # pidfile: /usr/local/nginx/logs/nginx.pid
 8 # config: /usr/local/nginx/conf/nginx.conf
 9
10 PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
11 DESC="nginx deamon"
12 NAME=nginx
13 DAEMON=/usr/local/nginx/sbin/$NAME
14 SCRIPTNAME=/etc/init.d/$NAME
15
16 test -x $DAEMON || exit 0
17
18 d_start(){
19   $DAEMON || echo -n "already running"
20 }
21
22 d_stop(){
23   $DAEMON -s quit || echo -n "not running"
24 }
25
26
27 d_reload(){
28   $DAEMON -s reload || echo -n "can not reload"
29 }
30
31 case "$1" in
32 start)
33   echo -n "Starting $DESC: $NAME"
34   d_start
35   echo "."
36 ;;
37 stop)
38   echo -n "Stopping $DESC: $NAME"
39   d_stop
40   echo "."
41 ;;
42 reload)
43   echo -n "Reloading $DESC conf..."
44   d_reload
45   echo "reload ."
46 ;;
47 restart)
48   echo -n "Restarting $DESC: $NAME"
49   d_stop
50   sleep 2
51   d_start
52   echo "."
53 ;;
54 *)
55   echo "Usage: $ScRIPTNAME {start|stop|reload|restart}" >&2
56   exit 3
57 ;;
58 esac
59
60 exit 0  

  ② 接着使用命令:

chmod +x /etc/init.d/nginx
chkconfig --add nginx
chkconfig nginx on

  ③ 使用命令查看是否启动正常

service nginx start # 启动
service nginx stop  # 关闭

9、外网访问nginx

  开通防火墙,运行nginx端口通过。

  然后通过ip进行访问,如果出现,则证明配置成功。

时间: 2024-11-05 13:30:31

搭建nginx服务器和直播流媒体服务器的相关文章

如何使用Weave以及Docker搭建Nginx反向代理/负载均衡服务器

Hi, 今天我们将会学习如何使用 Weave 和 Docker 搭建 Nginx 的反向代理/负载均衡服务器.Weave 可以创建一个虚拟网络将 Docker 容器彼此连接在一起,支持跨主机部署及自动发现.它可以让我们更加专注于应用的开发,而不是基础架构.Weave 提供了一个如此棒的环境,仿佛它的所有容器都属于同个网络,不需要端口/映射/连接等的配置.容器中的应用提供的服务在 weave 网络中可以轻易地被外部世界访问,不论你的容器运行在哪里.在这个教程里我们将会使用 weave 快速并且简单

同一路摄像头视频流接入RTSP_Onvif网页无插件直播流媒体服务器EasyNVR与其他平台播放视频有差异的原因分析

背景分析 随着平安城市.智慧城市.雪亮工程.智能交通等各项建设的持续开展,安防逐渐得到普及,面对如此广阔的市场,对安防企业来说不仅仅是机遇更多的是挑战.为了解决这些问题,近年来,视频监控行业发展方向主要为:“高清化.网络化.智能化”.视频监控设备技术性极强,系统的创新升级同时也在引导市场需求的变化并创造了新的市场需求. 基于AI视频智能分析云终端 EasyNVR智能云终端是基于视频智能传输技术.视频AI分析技术.智能云组网技术.边缘计算技术.视频大数据技术.窄带通信技术.远程监测技术以及智能语音

RTSP安防网络摄像头/海康大华硬盘录像机网页无插件直播流媒体服务器EasyNVR之鉴权接口的调用配置说明

进入移动互联网时代以来,企业微信公众号已成为除官网以外非常重要的宣传渠道,当3.2亿直播用户与9亿微信用户的势能累加,在微信上开启直播已成为越来越多企业的必然选择. EasyNVR核心在于摄像机的音视频流的获取.转换.转码与高性能分发,同时同步完成对实时直播流的录像存储,在客户端(PC浏览器.Android.iOS.微信)进行录像文件的检索.回放和下载. EasyNVR鉴权配置说明 发现问题 在实际对接项目中,很多用户需要根据自身业务层的用户权限,来决定调用视频流具体资源,EasyNVR在设计时

海康、大华等网络摄像头RTSP_Onvif网页无插件直播流媒体服务器EasyNVR鉴权出现跨域问题的解决方法

背景分析 随着平安城市.智慧城市.雪亮工程.智能交通等各项建设的持续开展,安防逐渐得到普及,面对如此广阔的市场,对安防企业来说不仅仅是机遇更多的是挑战.现今大多数摄像头一直没能摆脱人工监控的传统监控方式,由此导致了大量视频数据堆积占用存储资源.实时性差.检索困难等问题,海量摄像头带来的海量视频数据检索工作需要耗费大量警力. 为了解决这些问题,近年来,视频监控行业发展方向主要为:“高清化.网络化.智能化”.视频监控设备技术性极强,系统的创新升级同时也在引导市场需求的变化并创造了新的市场需求. Ea

nginx+nginx-rtmp-module+ffmpeg搭建流媒体服务器

参照网址: [1]http://blog.csdn.net/redstarofsleep/article/details/45092147 [2]HLS介绍:http://www.cnblogs.com/haibindev/archive/2013/01/30/2880764.html 上面这两个流的地址分别是: 第一个就是推送的地址: RTMP推流地址: rtmp://serverIp:1935/myapp/test1 第二个是HTTP地址: HLS推流地址: http://serverIp:

nginx搭建rtmp协议流媒体服务器总结

最近在 ubuntu12.04+wdlinux(centos)上搭建了一个rtmp服务器,感觉还挺麻烦的,所以记录下. 大部分都是参考网络上的资料. 前提: 在linux下某个目录中新建一个nginx目录. 然后进入该目录去下载搭建环境所需要的一些资源包. 此处在 /root/  目录下新建一个nginx目录即: /root/softsource/ 注意:依赖包和工具包需要下载,请在良好的网络环境下安装,否则在网速不好的情况下容易下漏掉,造成后面安装失败 ====================

使用Nginx+ffmpeg搭建直播点播服务器

背景 最近做一个直播平台项目,调研了一些开源的或者商用的流媒体服务器,包括Live555,Red5,Wowza,ffmpeg,EasyDarwin,FMS等:经过对比考量,因为本次需求相对比较简单,流协议基于RTMP,因此最终决定选型Nginx+ffmpeg. 选型 Nginx + nginx-rtmp-module + ffmpeg Nginx本身是一个非常出色的HTTP服务器,ffmpeg也是目前最好用的音视频解决方案,而这两个框架通过一个nginx的模块nginx-rtmp-module组

2015元旦第一篇博文:Red5流媒体服务器搭建

今天是2015年的第一天,白天陪老婆孩子去BHG(华联)转了转,中午在九毛九吃了顿午饭,就这样过了元旦,虽然有点累,但是挺开心,北京今天的天气也比较给力,风和日丽,没有雾霾!现在是晚上十点,因为白天出去玩,老婆孩子有点累,现在已经熟睡,我不想就这样就结束2015的第一天,作为一个新的开始,我决定写2015年的第一篇博文.闲话少说,进入主题.流媒体这个概念在第一家公司就了解了,当时做一个Eleaning在线教育平台的时候,用Red5流媒体服务器技术,支持过视频模块的播放.下面就谈谈我对流媒体的认识

Linux 下搭建流媒体服务器

http://blog.csdn.net/huangtaishuai/article/details/9836581 本文说明如何在 CentOS 6 服务器(无图形界面)搭建以 VLC 为核心的直播流媒体服务器. 第一步,安装第三方 yum 源.因为官方 yum 源中是不包含 VLC 安装包的,为了不用考虑安装包之间的依赖关系,使用第三方yum源的 yum 安装方式,能极大地简化 vlc 的安装过程,将主要精力集中到如何使用 VLC 功能来搭建流媒体服务器.(如果不想使用 yum 安装的,请自