Дальше еще возникает проблема с отдачей плейлиста .m3u8 файла, так как в него вносятся новые .ts файлы он должен отдаваться непосредственно из стрим сервера, то его нельзя кешировать
m3u8 кешировать можно.
Мастер плейлист можно закешировать, например, на минуту - количество вариантов(качеств) не меняется часто.
Плейлист с ts(чанклист) можно закешировать на длинну чанка - если чанки 10 секунд, то спокойно кешируй их на 10 секунд.
Можно перед nginx с ртмп модулем поставить кеширующий фронт(с включенным cache_lock), кеш на рамдиск, чанки кешировать, время кеширования зависит от размера чанклиста.
Почему параметр hls_fragment выбран 2 и 3 секунды?
Советую сделать 5.
Как реализовано вот это?
А на клиенте уже рандомно обращаемся к одному из кеш серверу
В целом вполне рабочая схема для http стриминга это:
пакетайзер(с твоём случае nginx-rtmp)
2 сервера origin-shield - для отказоустойчивости и защитить пакетайзер от большого количества запросов
N серверов edge
Мы у себя с одного эжда 10гигабит раздаём(дальше канала не хватает)...
Максимум получалось что выжать с них - 40гигабит, но это только внутри своей сети, наружу таких каналов нет.