Kann NGINX angewiesen werden, eine Datei über HTTP bereitzustellen, die gerade erstellt wird?

Kann NGINX angewiesen werden, eine Datei über HTTP bereitzustellen, die gerade erstellt wird?

Ich verwende NGINX als Komponente in meinem System, die von Clients gestreamte Inhalte akzeptiert (sagen wir, über RTMP) und sie zur Verarbeitung an einen internen Dienst weiterleitet. Der interne Dienst ruft die Inhalte über HTTP von NGINX ab.

Ich möchte jedoch nicht warten, bis der Client seinen gesamten Inhalt gestreamt hat, bevor ich mit der Verarbeitung beginne. Daher möchte ich, dass der interne Dienst mit dem Abrufen des Inhalts beginnt, sobald das erste Byte verfügbar ist. Das Problem besteht darin, dass NGINX das aktuelle Dateiende erreicht und die Bereitstellung des Inhalts beendet, wenn das Streamen des Clients langsamer ist als die Geschwindigkeit, mit der der interne Dienst von NGINX abrufen kann (was immer der Fall ist).

Gibt es eine Möglichkeit, NGINX dazu zu bringen, mit der Bereitstellung einer Datei zu beginnen, deren endgültige Größe unbekannt ist (offensichtlich mit Transfer-Encoding: chunked) und die Verbindung nicht zu beenden, bis alle (noch bereitzustellenden) Daten gesendet wurden?

Ich habe versucht, den Inhalt eines FIFO bereitzustellen, aber NGINX ignoriert das FIFO einfach und gibt stattdessen 404 Not Found zurück. Ich habe mir auch das NGINX HLS-Modul angesehen, aber dafür müssen die Dateien anscheinend im MPEG-4-Format vorliegen, was für meinen Anwendungsfall nicht zutrifft.

verwandte Informationen