歡迎您光臨本站 註冊首頁

Nginx 如何對後端機器中的flv做流媒體

←手機掃碼閱讀     火星人 @ 2014-03-04 , reply:0

Nginx 如何對後端機器中的flv做流媒體

我在生產環境中使用Nginx做反向代理工作,同時啟用了Nginx的本地緩存功能。
現在的問題是後端上很多的FLV或者mp4文件需要 像流媒體一樣,提供播放服務;
據我所知,Nginx是有這些功能的,但是就是不知道這種環境下如何實現Nginx的flv-stream功能。

如果您了解的話,還請賜教;或者告知思路也可;
《解決方案》

應該直接做流媒體伺服器吧,如:red5
《解決方案》

回復 2# key1077
據我查資料顯示,Nginx對flv和MP4有相應的模塊支持。
我是想如何在出口的Nginx上直接就可以提供flv或者MP4模塊的功能,但是具體的文件在後端的機器上,或者NGINX的緩存里。
《解決方案》

一天過去了,沒人給點意見嗎?
《解決方案》

你啟用緩存還是照常啟用唄
server_name flv.a.com;
index index.html;
root /data/flv;
limit_rate_after 4m;
limit_rate 512k;

locatiom ~\.flv {
flv;
}
《解決方案》

不好意思,沒有看清楚你的需求,重新來過
upstream server_pool {
        server 192.1.1.1:80
        server 192.1.1.2:80
}

server
{
        lister 80;
        server_name a.b.com;

        location /
        {
                proxy_set_header Host $host;
                proxy_pass http://server_pool;
        }

        location ~ .*\.(gif|jpg)$
        {
                proxy_cache cache_1;
                這裡是你緩存哪些東西
                ....
                proxy_pass http://server_pool;
        }

        location ~ .*\.flv$
        {
                proxy_cache cache_2;
                具體緩存設置
                ....
                flv;
                proxy_pass http://server_pool;
        }
《解決方案》

回復 6# wsxedcer


測試了您的配置。
文件還是從後端伺服器上拽下來的。並沒有啟用NGINX的FLV模塊。而且本地也沒有建立相應的緩衝文件。 這樣和直接 proxy_pass  http://x.x.x.x:80 是一樣的。
倒是找到一些俄文的信息,正在測試。如下:server {
    listen 127.0.0.1:812;
    server_name _;

    root /media;
    location / {
        limit_conn one 1;
        proxy_pass http://origin;
        proxy_ignore_client_abort on;
        proxy_store on;
    }
}

server {
    listen       1.1.1.1:80;
    server_name  _;

    root /media;
    location / {
        internal;
        aio             on;
        directio        512;
        output_buffers  1 128k;

        location ~* \.mp4$ {
           mp4;
           try_files $uri @origin;
           limit_rate_after  1m;
           limit_rate        200k;
        }
                                              
        location ~* \.flv$ {
           flv;
           try_files $uri @origin;
           limit_rate_after  1m;
           limit_rate        200k;
        }
    }
   
    location /dl/ {
        return 503;
        location ~ ^/dl/(?P<secure_hash>[\w\-=]+,\d+)(?P<file>/.+)$ {
           secure_link $secure_hash;
           secure_link_md5 $secure_link_expires.$file.<passphrase>;
          
           if ($secure_link = "") {
                return 403;
           }
           if ($secure_link = 0) {
                return 403;
           }
           rewrite ^ /$file last;
        }
    }

    location @origin {
        proxy_pass http://127.0.0.1:812;
        proxy_ignore_client_abort on;
        proxy_intercept_errors on;
        error_page 503 = @stream;
    }

    location @stream {
        proxy_pass http://origin;
        proxy_buffering off;
    }
}

[火星人 ] Nginx 如何對後端機器中的flv做流媒體已經有768次圍觀

http://coctec.com/docs/service/show-post-13615.html