Proxy reverso NGINX, fluxo de vídeo de configuração (MJPG) para usar uma conexão única com o servidor de back-end

1

Eu tenho uma pergunta / problema climático, é possível configurar um Proxy Reverso NGINX para que ele não faça Proxy a cada Solicitação de um Fluxo de Vídeo para o Servidor Backend, em vez disso, Abrindo uma Conexão Única para obter o Fluxo de Vídeo e distribuí-lo para os clientes. Agora eu uso a seguinte configuração.

server {                                                                        
      listen 9000 ssl;                                                              
      server_name some.domain www.some.domain;                                        
      error_log /var/log/nginx/error.cam.log;                                       
      access_log /var/log/nginx/access.cam.log;                                     

      ssl on;                                                                         
      ssl_certificate /etc/letsencrypt/live/some.domain/fullchain.pem;        
      ssl_certificate_key /etc/letsencrypt/live/some.domain/privkey.pem;       

      location / {                                                              

        auth_basic "Login";                                       
        auth_basic_user_file /etc/nginx/auth/Somefile;   
        proxy_pass http://XXX.XXX.XXX.XXX:9000/;                                  
        proxy_http_version 1.1;                                                 
        proxy_buffering off;        

      }                                                                                                                                                                                                                                
}  

O que leva a uma nova conexão de back-end para NGINX com o mesmo fluxo de vídeo sempre que um cliente solicita esse site do servidor NGINX. O gráfico acima mostra o tráfego da rede de saída: Verde = Nginx Server e Blue = Backend Server. Cada pico significa um novo cliente acessando o fluxo do Video MJPG.

Portanto, o problema é que eu tenho um desempenho muito limitado do Backend para o NGINX Proxy porque o Backend é um Raspberry Pi que não pode fornecer mais que 30Mbit fluxo estável. Eu já experimentei buffering, mas não tive sucesso. Existe algum método para usar uma única conexão com o back-end?

Obrigado e cumprimentos da Alemanha, Flo

    
por Flo 06.07.2016 / 10:05

1 resposta

2

O Nginx sempre criará uma nova conexão de proxy para a conexão de entrada, a menos que esteja em cache localmente. Como o MJPG é um loop infinito, não parece uma opção aqui.

O que eu tentaria, no entanto, é configurar um ffmpeg / vlc no servidor proxy para consumir o fluxo mjpg do rpi. Nginx, em seguida, pode se conectar ao ffmpeg / vlc local para obter fluxo. Você terá apenas uma conexão com o servidor backend.

    
por 06.07.2016 / 10:54