Я получаю странную ошибку 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. 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
Nginx всегда будет создавать новое прокси-соединение для входящего соединения, если только это кешируется локально. Поскольку MJPG представляет собой бесконечный цикл, он здесь не вариант.
Однако я бы попробовал настроить ffmpeg / vlc на прокси-сервере, чтобы использовать поток mjpg из rpi. Затем Nginx может подключиться к локальному ffmpeg / vlc для получения потока. Тогда у вас будет только одно соединение с внутренним сервером.
Как ответил @Yarik, в настоящее время это невозможно из-за того, как Nginx обрабатывает прокси. Вам нужна какая-то система, которая предназначена для приема одного потока и может ретранслировать его любому количеству клиентов.
Есть и другие проекты, призванные заполнить этот пробел. Вы всегда можете запустить один из них за Nginx на том же сервере. Nginx по-прежнему будет видеть отдельные подключения для каждого клиента и перенаправлять их вещателю, но вещатель будет загружать камеру только одним клиентом.