Перенаправить RTMP-соединения с одного сервера на другой

Я настраиваю сервер для балансировки нагрузки между серверами (транскодерами).
У меня много серверов транскодирования, и я хочу, чтобы баланс между этими серверами по алгоритму php выбирал, что сервер отвечает на запрос.
запрос RTMP.
Exemple:
запрос клиента: rtmp: // balancer_ip: 1935 / Live / 21? username = jhony&пароль = хахаха
Рабочий процесс балансировщика: найдите лучший транскодер и учетные данные клиента, имеющие доступ к этому серверу транскодирования, и перенаправьте или proxy_pass клиент на этот сервер транскодирования.

На серверах транскодирования я установил и настроил nginx с модулем RTMP, она отлично работает с аутентификацией rtmp по алгоритму php.
На первом сервере балансировки я попытался перенаправить клиентов с параметром on_play в модуле rtmp, например, аутентификация rtmp, но мне это не удалось.
Поэтому я проводил другие исследования и обнаружил, что с помощью nginx TCP и UDP Load Balancing с этим модулем я могу перенаправить или proxy_pass запросы клиентов на серверы транскодирования, но во многих случаях проблема в том, что балансировщик proxy_pass клиент неправильно подключает серверы транскодирования (клиент не имеет ‘ t доступ к этому серверу транскодирования или поток rtmp не работает).

#in balancer nginx.conf
stream {
#listen on rtmp port
server {
listen     1935;
proxy_pass rtmp_servers;
}
upstream rtmp_servers {
server transcoder_1_ip:1935;
server transcoder_2_ip:1935;
#check interval=10 passes=2 fails=3 port=1935;
}
}
#in transcoder nginx.conf
rtmp {
server {
listen 1935;
application live {
live on;
on_play http://127.0.0.1:80/rtmp-auth;
notify_method get;
record off;
}
}
}
// php function for rtmp stream authentication in transcoder
$app->get('/rtmp-auth', function (Request $request) use ($app) {
$response = new Response();
$response->setStatusCode(404);
// check with database if user name and posword is ok
$response->setStatusCode(201);
}
/* i tryed in balancer with this code and send a redirection
in the return but she dont work :(*/
return $response;
})->bind('rtmpAuth');

Так есть ли способ перенаправить или сбалансировать между серверами по специальному алгоритму?
Или в каждом клиентском запросе проверять ответ сервера транскодирования перед перенаправлением клиентов?
Замечания: у меня есть серверы tronscoding, работающие с некоторыми критиками, такими как страны клиентов … поэтому мне нужно создать алгоритм для перенаправления запросов клиентов.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]