Настроить отказоустойчивую систему хранения и раздачи видео. Backend: Очередь конвертации видео (чтобы при загрузке 10 файлов сервер не падал). Frontend: Раздача через Nginx с кэшированием (чтобы не платить за трафик S3).Стек: Ubuntu 22.04/24.04, Nginx, Python (или Go/Bash), Redis, FFmpeg, S3 (Timeweb/Selectel). Техническое задание (ТЗ) 1. Система обработки видео (Очередь) Проблема: Если залить 10 видео одновременно, запуск 10 процессов FFmpeg "убьет" процессор и память VPS. Решение: Реализовать последовательную обработку через очередь. Инструменты: Redis (как брокер) + скрипт-воркер (Python/PHP/Go на выбор исполнителя). Алгоритм работы: Скрипт мониторит папку загрузки /uploads (через inotify или CRON) ИЛИ принимает веб-хук от сайта. При появлении файла задача добавляется в Redis. Воркер (Worker): Берет из очереди строго 1 задачу за раз. Сжимает видео через FFmpeg (H.264, CRF 23, moov atom в начале файла для веб-оптимизации). Загружает результат в S3 бакет (через rclone, s3cmd или AWS SDK).После успеха удаляет исходник и локальную копию. Опционально: Отправляет callback (HTTP запрос) на мой сайт: "Видео ID 123 готово, ссылка: ...". 2. Раздача контента (Nginx Proxy) Настроить Nginx как кэширующий шлюз перед S3. Модуль Slice (Важно!): Включить ngx_http_slice_module. Разбивать запросы к S3 на куски по 1 МБ. Цель: Чтобы при перемотке видео в конец не скачивался весь файл, и чтобы кэш работал эффективно. Кэширование: Настроить proxy_cache на SSD диске. Время жизни кэша (TTL): 30 дней (или пока не кончится место). При повторном запросе того же куска — отдача с диска VPS (Hit), без запроса к S3. Оптимизация: Включить aio, sendfile, tcp_nodelay. 3. Защита ссылок (Secure Link) Настроить модуль secure_link (MD5 + Expires). Видео должно быть доступно только по подписанной ссылке с временным токеном. Прямые ссылки на .mp4 должны отдавать 403 Forbidden. Артефакт: Предоставить пример кода (PHP/Python) для генерации ссылки, который я вставлю к себе на сайт. 4. Безопасность сервера Firewall (UFW): Разрешить только порты 80, 443, SSH. SSH: Отключить вход по паролю, оставить только по ключам. Fail2Ban: Настроить бан за перебор SSH и (опционально) за DOS-атаки на Nginx.