视频流服务器的 NGINX 配置

视频流服务器的 NGINX 配置

我在 digitalocean.com 购买了云服务器,配有 2GB RAM 和双核处理器。我想设置视频代理服务,即代理 YouTube 视频。

我安装了 NGINX + PHP-FPM 服务器和 UFW 防火墙。但是当超过 10 到 20 个用户流式传输时,网站速度会变慢或完全无法访问。

以下是配置:

(NGINX 配置)

user www-data;
worker_processes 2;
pid /var/run/nginx.pid;

events {
    worker_connections 19000;
    multi_accept on;
}

worker_rlimit_nofile 20000;
http {

    ##
    # Basic Settings
    ##

    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    types_hash_max_size 2048;

    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    ##
    # Logging Settings
    ##

    access_log off;
    error_log /var/log/nginx/error.log crit;

    ##
    # Gzip Settings
    gzip on;
    gzip_disable "msie6";

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
}

(PHP-FPM 配置)

pm = static
pmm.max_children=1000
pm.process_idle_timeout = 10s

我也尝试了动态和按需配置,但没有改善。

pm = dynamic
pm.max_children = 1000
pm.start_servers=2
pm.min_spare_servers = 2
pm.max_spare_servers = 6

请帮助配置该服务器。

答案1

您如何进行实际的代理?

您提供的详细信息似乎不足以确定瓶颈所在。您没有提供任何有关代理的内容、代理方式和代理人员的信息,而这正是根本问题解决的所在。

我的假设是,您的代理应用程序将视频保存到磁盘,并且您可能耗尽了所有磁盘 IO 分配。整个服务器无响应是磁盘 IO 耗尽的明显迹象。

虽然 nginx 是一款我强烈推荐的好工具,但对于你的特定用例,你可能更适合使用我建议用 varnish 编写整个代理逻辑;varnish cache 将最有效地利用您的 2GB RAM。

答案2

好消息:该问题与服务器内存/CPU 等无关。

坏消息:您的 NGINX 服务器配置未设置用于视频流。

配置文件中没有 RTMP 视频点播相关行的踪迹。基本上,您使用 NGINX 作为非流媒体服务器,这就是它看起来很慢的原因。另一方面,它非常快,因为它是一种没有 VOD 功能的服务。

相关内容