常常搭建nginxserver,可是好像每次的情况都不同,这次具体记录这个过程:

平台:unbutu 10.04 内核:2.6.32-33-generic

1, 编译环境搭建。

sudo apt-get install g++

sudo apt-get -y install autoconf automake build-essential libass-dev libgpac-dev libsdl1.2-dev libtheora-dev libtool libvdpau-dev libvorbis-dev libx11-dev libxext-dev libxfixes-dev pkg-config texi2html zlib1g-dev libssl-dev

2, 建立例如以下下载脚本:getfile.sh

-------------------getfile.sh start here---------------------------------------------------

wget http://sourceforge.net/projects/pcre/files/pcre/8.32/pcre-8.32.tar.gz

wget http://www.openssl.org/source/openssl-1.0.1f.tar.gz

wget http://nginx.org/download/nginx-1.5.9.tar.gz

wget http://zlib.net/zlib-1.2.8.tar.gz

wget http://h264.code-shop.com/download/nginx_mod_h264_streaming-2.2.7.tar.gz

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

tar xvf pcre-8.32.tar.gz

tar xvf openssl-1.0.1e.tar.gz

tar xvf nginx-1.5.9.tar.gz

tar xvf zlib-1.2.8.tar.gz

tar xvf nginx_mod_h264_streaming-2.2.7.tar.gz

-------------------getfile.sh end here---------------------------------------------------



3, 编译openssl,这部是必须的,否则后面编译会fail的

cd openssl-1.0.1e #:notice the version

编译静态库



sudo chmod u+x ./config

./config --prefix=/usr/local --openssldir=/usr/local/opensll

make

sudo make install



编译动态库



./config shared --prefix=/usr/local --openssldir=/usr/local/opensll

make clean

make

sudo make install







4, 在nginx-1.5.9建立配置文件脚本nginx_configure.sh

----------------------------nginx_configure.sh start here-------------------------------------------------

#!/bin/sh



./configure \

--prefix=/usr/local/nginx/ \

--add-module=../nginx-rtmp-module \

--with-http_ssl_module \

--add-module=../nginx_mod_h264_streaming-2.2.7 \

--with-pcre=../pcre-8.32 \

--with-zlib=../zlib-1.2.8  \

--with-http_flv_module \

--with-http_stub_status_module \

--with-http_mp4_module  \

--with-cc-opt='-O3'

----------------------------nginx_configure.sh end here-------------------------------------------------



5, 进入nginx-1.5.9

运行./nginx_configure.sh

make -j8

出错

-------------------------------the error log start here----------------------------------------------------

In file included from ../nginx_mod_h264_streaming-2.2.7/src/ngx_http_h264_streaming_module.c:2:

../nginx_mod_h264_streaming-2.2.7/src/ngx_http_streaming_module.c: In function ‘ngx_streaming_handler’:

../nginx_mod_h264_streaming-2.2.7/src/ngx_http_streaming_module.c:158: error: ‘ngx_http_request_t’ has no member named ‘zero_in_uri’

make[1]: *** [objs/addon/src/ngx_http_h264_streaming_module.o] Error 1

make[1]: *** Waiting for unfinished jobs....

make[1]: Leaving directory `/media/zangcf/works/works/nginx/x86/nginx_x86/nginx-1.5.9'

make: *** [build] Error 2

-------------------------------the error log end here-------------------------------------------------------

gedit ../nginx_mod_h264_streaming-2.2.7/src/ngx_http_streaming_module.c



找到例如以下

  /* TODO: Win32 */

  if (r->zero_in_uri)

  {

    return NGX_DECLINED;

  }

凝视掉



make -j8



pass



sudo make install



6, 改动config文件

sudo cp /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.bak

sudo gedit /usr/local/nginx/conf/nginx.conf

--------------------------nginx.conf start here----------------------------------------------------------------------

user  root;

worker_processes  2;



#error_log  logs/error.log;

#error_log  logs/error.log  notice;

#error_log  logs/error.log  info;



#pid        logs/nginx.pid;





events {

    worker_connections  1024;

}





http {

    include       mime.types;

    default_type  application/octet-stream;



    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '

    #                  '$status $body_bytes_sent "$http_referer" '

    #                  '"$http_user_agent" "$http_x_forwarded_for"';



    #access_log  logs/access.log  main;



    sendfile        on;

    #tcp_nopush     on;



    #keepalive_timeout  0;

    keepalive_timeout  65;



    #gzip  on;



    server {

        listen      80 default;

        server_name  localhost;

        autoindex            on;

        autoindex_exact_size on;

        root    /var/wwwroot;

        index   index.html index.htm index.php;



        #charset koi8-r;



        #access_log  logs/host.access.log  main;



        #error_page  404              /404.html;



        # redirect server error pages to the static page /50x.html

        #

        error_page   500 502 503 504  /50x.html;

        location = /50x.html {

            root   html;

        }



        # proxy the PHP scripts to Apache listening on 127.0.0.1:80

        #

        #location ~ \.php$ {

        #    proxy_pass   http://127.0.0.1;

        #}



        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

        #

        location ~* \.php$ {

            fastcgi_index  index.php;

            client_max_body_size 64m;

            fastcgi_pass   unix:/data/data/android.php-fpm/tmp/php-fpm.socket;

            fastcgi_param  SCRIPT_FILENAME  /data/data/android.wwwroot$fastcgi_script_name;

            include        fastcgi_params;

        }



       location ~ \.flv$ {

                         flv;

                        }

       location ~ \.mp4$ {

                         mp4;

                        }





        # deny access to .htaccess files, if Apache's document root

        # concurs with nginx's one

        #

        #location ~ /\.ht {

        #    deny  all;

        #}

    }





    # another virtual host using mix of IP-, name-, and port-based configuration

    #

    #server {

    #    listen       8000  default;

    #    listen       somename:8080;

    #    server_name  somename  alias  another.alias;



    #    location / {

    #        root   html;

    #        index  index.html index.htm;

    #    }

    #}





    # HTTPS server

    #

    #server {

    #    listen     443 default;

    #    server_name  localhost;



    #    ssl                  on;

    #    ssl_certificate      cert.pem;

    #    ssl_certificate_key  cert.key;



    #    ssl_session_timeout  5m;



    #    ssl_protocols  SSLv2 SSLv3 TLSv1;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;

    #    ssl_prefer_server_ciphers   on;



    #    location / {

    #        root   html;

    #        index  index.html index.htm;

    #    }

    #}



}





rtmp {

    server {

        listen 1935;



        chunk_size 4096;



        application myapp {

            live on;

        }

    }

}



----------------------------------------------nginx.conf end here--------------------------------------



7, 測试

Ubuntu x86 64 settup nginx rtmp server的更多相关文章

  1. (转)Nginx+rtmp+ffmpeg搭建流媒体服务器

    (1)下载第三方扩展模块nginx-rtmp-module # mkdir module && cd module //创建一个存放模块的目录 # wget https://githu ...

  2. Ubuntu中使用Nginx+rtmp模块搭建流媒体视频点播服务

    1. 背景 不知不觉笔者来到流媒体部门已经一年半多了,积攒了不少的流媒体知识,但平时工作也比较忙,很少进行总结性的梳理,最近准备花几个周末时间写一个流媒体系列的实践文章,也算是给自己做总结的同时帮助有 ...

  3. Ubuntu中使用Nginx+rtmp搭建流媒体直播服务

    一.背景 本篇文章是继上一篇文章<Ubuntu中使用Nginx+rtmp模块搭建流媒体视频点播服务>文章而写,在上一篇文章中我们搭建了一个点播服务器,在此基础上我们再搭建一个直播服务器, ...

  4. 转:Nginx RTMP 功能研究

    看点: 1.    Nginx 配置信息与使用.  (支持 rtmp与HLS配置) 2.    有ffmpeg 编译与使用,    命令行方式来测试验证客户端使用. 转自:http://blog.cs ...

  5. Ubuntu18.04下配置Nginx+RTMP服务器,实现点播/直播/录制功能

    2019.3.22更新 最新的nginx-1.15.9可与openssl1.1.1兼容了 以下原文: 这个东西我眼馋挺久了,最近终于试玩了一下,感觉很好玩,在搭建的过程在也遇到一些坑,这里总结一下 安 ...

  6. 使用 ffmpeg nginx rtmp 搭建实时流处理平台

    环境: ubuntu 16.04 问题引入: 使用 opencv 获取摄像头数据帧, 进行处理之后(如进行 keypoint 识别), 将 opencv 中图像的 Mat类型转化为 ffmpeg 的 ...

  7. ffmpeg,rtmpdump和nginx rtmp实现录屏,直播和录制

    公司最近在做视频直播的项目,我这里分配到对直播的视频进行录制,录制的方式是通过rtmpdump对rtmp的视频流进行录制 前置的知识 ffmpeg: 用于实现把录屏工具发出的视频和音频流,转换成我们需 ...

  8. Mac上搭建Nginx + rtmp

    介绍 nginx是非常优秀的开源服务器,用它来做hls或者rtmp流媒体服务器是非常不错的选择,本人在网上整理了安装流程,分享给大家并且作备忘. 安装步骤 1.先安装brew: /usr/bin/ru ...

  9. Mac上搭建直播服务器Nginx+rtmp

    简介 nginx是非常优秀的开源服务器,用它来做hls或者rtmp流媒体服务器是非常不错的选择,本人在网上整理了安装流程,分享给大家并且作备忘. 步骤安装 1.安装Homebrow Homebrew简 ...

随机推荐

  1. pwnable.kr uaf之wp

    几乎都想要放弃了,感觉学了好久还是什么都不会,这个题好像很难的样子,有很多知识点需要补充一下: 1.[UAF]分配的内存释放后,指针没有因为内存释放而变为NULL,而是继续指向已经释放的内存.攻击者可 ...

  2. LeetCode(87) Gray Code

    题目 The gray code is a binary numeral system where two successive values differ in only one bit. Give ...

  3. LeetCode(26) Remove Duplicates from Sorted Array

    题目 Given a sorted array, remove the duplicates in place such that each element appear only once and ...

  4. [Noip2017][Day 1][T1]玩具谜题(toy.cpp)

    题目描述 小南有一套可爱的玩具小人, 它们各有不同的职业. 有一天, 这些玩具小人把小南的眼镜藏了起来. 小南发现玩具小人们围成了一个圈,它们有的面朝圈内,有的面朝圈外.如下图: 这时singer告诉 ...

  5. netcat命令的使用

    Linux netcat 命令实例: 1,端口扫描 端口扫描经常被系统管理员和黑客用来发现在一些机器上开放的端口,帮助他们识别系统中的漏洞. $nc -z -v -n 172.31.100.7 21- ...

  6. python re 正则提取中文

    需求: 提取文本中的中文和数字字母(大小写都要),即相当于删除所有标点符号. 其中new是原字符串 news = re.findall(r'[\u4e00-\u9fa5a-zA-Z0-9]',new)

  7. Android ScaleDrawable

    顾名思义,Android ScaleDrawable实现一个drawable的缩放.写一个例子. 一个线性布局,垂直放几个ImageView,然后依次缩放若干个ScaleDrawable. 布局文件: ...

  8. HackerRank# The Coin Change Problem

    原题地址 背包问题,没啥好说的,记得用long long,否则会爆 代码: #include <cmath> #include <cstdio> #include <ve ...

  9. [luoguP2886] [USACO07NOV]牛继电器Cow Relays(矩阵)

    传送门 矩阵快速幂,本质是floyd 把 * 改成 + 即可 注意初始化 因为只有100条边,所以可以离散化 #include <cstdio> #include <cstring& ...

  10. 用svn下载github中指定目录的文件

    1.先用命令看看github的分支 svn ls https://github.com/BlueRiverInteractive/robovm-ios-bindings 输出: branches/ t ...