RTMP 연결을 한 서버에서 다른 서버로 리디렉션


0

내가 서버 (트랜스 코더) 사이에 균형을로드하기위한 서버를 설정하고 있습니다.
나는 많은 트랜스 코딩 서버가 있고 PHP 알고리즘에 의해 그 servres 사이의 균형을 선택 마녀 서버 요청에 응답합니다. 요청은 RTMP입니다.
예 :
클라이언트 요청 : rtmp : // balancer_ip : 1935 / live / 21? username = jhony & password = hahaha
발란저 워크 플로 : 최상의 트랜스 코더를 찾고 클라이언트 자격 증명에이 트랜스 코딩 서버에 대한 액세스 권한이 있으며 클라이언트를이 트랜스 코딩 서버로 리디렉션 또는 프록시 _ 통과합니다.

트랜스 코딩 서버에서 RTMP 모듈을 사용하여 nginx를 설치하고 구성 했으므로 PHP 알고리즘에 의한 rtmp 인증과 잘 작동합니다. balancer 서버에서 먼저 rtmp 인증과 같이 rtmp 모듈의 on_play 매개 변수를 사용하여 클라이언트를 리디렉션하려고 시도했지만 성공하지 못했습니다.
그래서 내가 다른 연구 mak'it 및 TCP 및 UDP로드 균형 조정 nginx TCP 및 UDP로드 균형 조정이 모듈 리디렉션 할 수 또는 클라이언트 요청을 transcoding 서버에 있지만 여러 번 balancer proxy_pass 클라이언트 잘못 트랜스 코딩 서버 (클라이언트 피난처 ' 이 트랜스 코딩 서버 또는 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');

따라서 사용자 지정 알고리즘을 통해 서버간에 리디렉션 또는 균형을 조정할 수있는 방법이 있습니까?
또는 모든 클라이언트 요청에서 클라이언트를 리디렉션하기 전에 트랜스 코딩 서버의 응답을 확인 하시겠습니까?
노트 : 클라이언트 국가와 같은 일부 critiria와 함께 작동하는 트랜스 코딩 서버가 있습니다 ... 그래서 클라이언트 요청을 리디렉션하는 알고리즘을 작성해야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.