Назад | Перейти на главную страницу

Конфигурация NGINX для сервера потокового видео

Я приобрел облачный сервер на digitalocean.com с 2 ГБ оперативной памяти и процессором DUAL CORE. Я хочу настроить службу видеопрокси, то есть проксировать видео на 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

Пожалуйста, помогите в настройке этого сервера.

Как вы выполняете прокси?

Предоставленных вами сведений недостаточно для определения узкого места. Вы не предоставили ничего относительно того, что, как и кто выполняет проксирование, и именно в этом заключается основная проблема.

Моя гипотеза состоит в том, что ваше проксирующее приложение сохраняет видео на диск, и вы можете исчерпать все свои дисковые ресурсы ввода-вывода. Отсутствие ответа всего сервера - хороший признак истощения дискового ввода-вывода.

Хотя nginx - отличный инструмент, который я настоятельно рекомендую, для вашего конкретного случая использования вам может быть лучше лак. Предлагаю написать всю логику проксирования в лаке; Varnish cache наиболее эффективно использует ваши 2 ГБ оперативной памяти.