
# 安装nginx+http-flv(rtmp服务器)
#### 操作步骤
下载[安装指导](https://github.com/winshining/nginx-http-flv-module/blob/master/README.CN.md)。
1. 单击[下载路径](https://openssl-library.org/source/old/1.1.1)，安装依赖项openssl，这里选择1.1.1g。
   
   ![](https://support.huaweicloud.com/bestpractice-iotedge/figure/zh-cn_image_0000001340947432.png "点击放大")
   假设将下载文件放至"/home"目录下并解压，依次执行以下命令进行openssl的编译安装。
   ```
   ./config no-asm -shared
   make –j4
   make install
   ```
   
   
2. 下载nginx和nginx-http-flv-module。 
   安装指导以及下载链接：<https://github.com/winshining/nginx-http-flv-module/blob/master/README.CN.md>
   ![](https://support.huaweicloud.com/bestpractice-iotedge/public_sys-resources/note_3.0-zh-cn.png)
   上述的包均为源码，需要将nginx和nginx-http-flv-module一起编译，接下来进行编译。
   
   
3. 将上述的压缩包分别解压到"/home"目录下。 
   ![](https://support.huaweicloud.com/bestpractice-iotedge/figure/zh-cn_image_0000001391227329.png "点击放大")
   
   
4. 使用以下命令进行编译。 
   ```
   ./configure --add-module=/home/nginx-http-flv-module-master
   make –j4
   make install
   ```
   默认nginx安装在/usr/local/nginx
   
   
5. 配置nginx。 
   配置文件为nginx.conf
   Nginx的配置目录为/usr/local/nginx/conf/
   可以使用下面的文件直接覆盖nginx.conf
   ![](https://support.huaweicloud.com/bestpractice-iotedge/figure/zh-cn_image_0000001340956600.png "点击放大")
   上面两个配置分别表示rtmp服务器地址监听地址以及appname。
   **配置文件**：
   ```
   #user  nobody;
   worker_processes  1;
   #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       8080;
           server_name  localhost;
           #charset koi8-r;
           #access_log  logs/host.access.log  main;
           location / {
               root   html;
               index  index.html index.htm;
           }
           #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;
           }
   location /live {
   flv_live on;
                           chunked_transfer_encoding on; #支持 'Transfer-Encoding: chunked' 方式回复
                           add_header 'Access-Control-Allow-Origin' '*'; #添加额外的 HTTP 头
                           add_header 'Access-Control-Allow-Credentials' 'true'; #添加额外的 HTTP 头
                   }
                   location /hls {
                           types {
                                   application/vnd.apple.mpegurl m3u8;
                                   video/mp2t ts;
                           }
                           root /tmp;
                           add_header 'Cache-Control' 'no-cache';
                   }
           # 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$ {
           #    root           html;
           #    fastcgi_pass   127.0.0.1:9000;
           #    fastcgi_index  index.php;
           #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
           #    include        fastcgi_params;
           #}
           # 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;
       #    listen       somename:8080;
       #    server_name  somename  alias  another.alias;
       #    location / {
       #        root   html;
       #        index  index.html index.htm;
       #    }
       #}
       # HTTPS server
       #
       #server {
       #    listen       443 ssl;
       #    server_name  localhost;
       #    ssl_certificate      cert.pem;
       #    ssl_certificate_key  cert.key;
       #    ssl_session_cache    shared:SSL:1m;
       #    ssl_session_timeout  5m;
       #    ssl_ciphers  HIGH:!aNULL:!MD5;
       #    ssl_prefer_server_ciphers  on;
       #    location / {
       #        root   html;
       #        index  index.html index.htm;
       #    }
       #}
   }
   rtmp {
           server {
                   listen 1985;
                   application edge_video{
                           live on;
   gop_cache on;
                   }
   application hls {
   live on;
   hls on;
   hls_path /tmp/hls;
   }
           }
   }
   ```
   
   
6. 运行nginx。 
   ```
   export LD_LIBRARY_PATH=/usr/local/lib64/:${LD_LIBRARY_PATH}
   cd /usr/local/nginx/sbin
   ./nginx
   ```
   
   
 
