我在 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 功能的服务。