движок Google 502 плохой шлюз во время выборки пакета npm

Я получаю странную ошибку 502 при попытке получить пакет npm внутри экземпляра службы Google.

У меня вопрос / проблема, можно ли настроить обратный прокси-сервер NGINX так, чтобы он не проксировал каждый запрос видеопотока на внутренний сервер, а вместо этого открывал одно соединение для получения видеопотока и его распространения на Клиенты. Прямо сейчас я использую следующую конфигурацию.

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;        

      }                                                                                                                                                                                                                                
}  

Что приводит к новому бэкэнд-соединению с NGINX с тем же самым видеопотоком каждый раз, когда клиент запрашивает этот сайт с сервера NGINX. Network Activity Backend=Green , NGINX=Blue Above Graph shows the Outgoing Network traffic: Green=Nginx Server and Blue=Backend Server. Every Peak means a new client accessing the Video MJPG stream.

So the Problem is i have a verry limited Performance from Backend to the NGINX Proxy because the Backend is a Raspberry Pi which cant deliver more that 30Mbit stable stream. I already experimented with buffering etc. but had no success. Is there any method to use a single Connection to the Backend?

Thanks and Regards from Germany, Flo

1
задан 6 July 2016 в 11:05
2 ответа

Nginx всегда будет создавать новое прокси-соединение для входящего соединения, если только это кешируется локально. Поскольку MJPG представляет собой бесконечный цикл, он здесь не вариант.

Однако я бы попробовал настроить ffmpeg / vlc на прокси-сервере, чтобы использовать поток mjpg из rpi. Затем Nginx может подключиться к локальному ffmpeg / vlc для получения потока. Тогда у вас будет только одно соединение с внутренним сервером.

2
ответ дан 3 December 2019 в 20:36

Как ответил @Yarik, в настоящее время это невозможно из-за того, как Nginx обрабатывает прокси. Вам нужна какая-то система, которая предназначена для приема одного потока и может ретранслировать его любому количеству клиентов.

Есть и другие проекты, призванные заполнить этот пробел. Вы всегда можете запустить один из них за Nginx на том же сервере. Nginx по-прежнему будет видеть отдельные подключения для каждого клиента и перенаправлять их вещателю, но вещатель будет загружать камеру только одним клиентом.

1
ответ дан 24 March 2020 в 01:56

Теги

Похожие вопросы