Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Verwenden Sie nginx und nginx-rtmp-module, um einen Streaming-Media-Server zu erstellen

Verwenden Sie nginx und nginx-rtmp-module, um einen Streaming-Media-Server zu erstellen

零下一度
零下一度Original
2017-06-29 11:11:432359Durchsuche

Ich bin auf ein sehr peinliches Problem gestoßen, als ich Nginx und das Nginx-RTMP-Modul zum Erstellen eines Streaming-Medienservers verwendet habe. Dies war der erste Ansatz, den ich beim Hinzufügen des Nginx-RTMP-Moduls zu Nginx gewählt habe. Laden Sie dann den Quellcode von Nginx und Nginx-RTMP-Modul herunter, kompilieren Sie ihn erneut und installieren Sie ihn. Nach der Neuinstallation habe ich den Streaming-Media-Server getestet und es war normal, aber dann kam das Problem, weil ich einige WEB-Projekte im LUMP bereitgestellt hatte Nachdem Nginx neu installiert wurde, müssen diese Projekte erneut bereitgestellt werden. Ich habe also begonnen, diese WEB-Projekte erneut bereitzustellen, aber das Ergebnis hat mich zum Weinen gebracht, weil sich die Struktur des Nginx-Verzeichnisses stark verändert hat. Daher konnte ich das ursprüngliche WEB-Projekt nicht konfigurieren. Danach habe ich lange nach vielen Lösungen im Internet gesucht, aber die meisten dieser Lösungen konzentrierten sich auf das Kompilieren und Installieren von Nginx und The Push-Pull Als ich den Beitrag später durchstöberte, sah ich, dass jemand sagte, dass das Ersetzen der ursprünglichen Nginx-ausführbaren Datei durch die von mir kompilierte Nginx-ausführbare Datei das Problem lösen könnte, also habe ich es sofort versucht Es hat sich herausgestellt, dass es wirklich funktioniert! Jetzt kann Nginx gleichzeitig Streaming-Mediendienste ausführen und WEB-Projekte bereitstellen und das Beste aus beiden Welten nutzen.

Lassen Sie mich kurz meinen Betriebsprozess vorstellen, in der Hoffnung, anderen zu helfen Wenn Sie auf das gleiche Problem stoßen, bringen Sie bitte Hilfe mit (meine Konfigurationsumgebung: Ubuntu Server 16.04 + nginx1.10.0 + nginx-rtmp-module-master) 1. Installieren Sie zuerst nginx mit apt -get. Derzeit wird die auf diese Weise installierte Versionsnummer von Nginx 1.10.0 verwendet.

1 sudo apt-get update2 sudo apt-get install nginx
2. Gehen Sie zu Ihrem Lieblingsverzeichnis und erstellen Sie ein Verzeichnis mit Ihrem Lieblingsnamen zum Speichern nginx und nginx – Der Quellcode des RTMP-Moduls, zum Beispiel: Ich habe das Nginx-Verzeichnis unter dem Stammverzeichnis/Softwares erstellt (Softwares wurde auch von mir selbst erstellt) und lade dann Nginx und Nginx-RTMP-Module auf das Nginx herunter Verzeichnis.

1 cd softwares/2 sudo mkdir nginx
3. Geben Sie das Nginx-Verzeichnis ein

1 cd nginx/
4. Laden Sie den Nginx-Quellcode herunter Die heruntergeladene Quellcodeversion muss mit Schritt 1 installiert werden. Die Version von Nginx sollte konsistent sein, um unnötige Probleme zu vermeiden. Es gibt viele Möglichkeiten, den Nginx-Quellcode zu erhalten.

Methode a: Ausführen apt-get source nginx-Befehl im Terminal, um den Quellcode der entsprechenden Version zu erhalten

1 sudo apt-get source nginx
Diese Methode wird nach dem Herunterladen automatisch dekomprimiert Verzeichnis ist das Nginx-Quellcodeverzeichnis.

Methode b: Suchen Sie die entsprechende Version auf der offiziellen Website von Nginx und laden Sie sie herunter Auf diese Weise müssen Sie es manuell dekomprimieren:

1 sudo wget nginx.org/download/nginx-1.10.0.tar.gz
5. Laden Sie den Quellcode von nginx-rtmp-module herunter >

Da nginx-rtmp-module Open Source auf GitHub ist, kann es auch direkt von der GitHub-Adresse bezogen werden:

6. Entpacken Sie das komprimierte Paket der nginx-rtmp-module-Quelle
1 sudo tar zxvf nginx-1.10.0.tar.gz

7. Geben Sie das Nginx-Quellcodeverzeichnis ein
1 sudo wget github.com/arut/nginx-rtmp-module/archive/master.zip

8. Sehen Sie sich die aktuellen Nginx-Konfigurationsinformationen an Speichern Sie die aktuellen Konfigurationsinformationen vollständig an einem Ort. Wenn Sie den Nginx-Quellcode später kompilieren, müssen Sie ihn basierend auf den aktuellen Konfigurationsinformationen konfigurieren In der Befehlszeile wird nur die Versionsnummer von Nginx in Kleinbuchstaben angezeigt. Meine aktuellen Nginx-Konfigurationsinformationen lauten wie folgt:

1 sudo unzip master.zip

9. Konfigurieren Sie den Nginx-Quellcode Kompilierungsinformationen und nginx-rtmp-module zu nginx hinzufügen

1 cd nginx-1.10.0/

Beachten Sie, dass diese Befehlszeile tatsächlich wie folgt zusammengesetzt ist: sudo ./configure -add-module=../nginx-rtmp-module-master Dadurch wird das Nginx-RTMP-Modul zur Nginx-Konfiguration hinzugefügt und gleichzeitig werden die zuvor gespeicherten Nginx-Konfigurationen hinzugefügt Die für diese Kompilierung verwendeten Konfigurationsinformationen stellen sicher, dass der kompilierte Nginx so weit wie möglich die gleichen Funktionen wie der ursprüngliche Nginx hat. Wenn ich die Nginx-Informationen konfiguriere, werden tatsächlich nicht alle ursprünglichen Konfigurationen einbezogen Der Grund dafür ist, dass beim Kopieren und Einfügen aller Informationen einige Fehler auftreten, die beim Kompilieren nicht einfach zu beheben sind. Für diese Fehler gibt es eine Zeit lang keine gute Lösung, daher habe ich einige Konfigurationsinformationen reduziert. Danach wird es keinen großen Unterschied in den Funktionsmodulen geben, sodass Sie es bedenkenlos verwenden können.

10. Führen Sie nach Abschluss der Konfiguration den Befehl make aus, um mit der Kompilierung des Nginx-Quellcodes zu beginnen Ist der Vorgang abgeschlossen, wird er im objs-Verzeichnis des ausführbaren Nginx-Quellcodeverzeichnisses generiert.
1 nginx -V

11. Kopieren Sie die generierte ausführbare Nginx-Datei nach /usr/. sbin-Verzeichnis und ersetzen Sie die ursprüngliche Nginx-Shared-Library-Datei. Im Verzeichnis usr/sbin befindet sich eine Nginx-Shared-Library-Datei.
--with-cc-opt='-g -O2 -fPIE -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2' --with-ld-opt='-Wl,-Bsymbolic-functions -fPIE -pie -Wl,-z,relro -Wl,-z,now' --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-debug --with-pcre-jit --with-ipv6 --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-http_auth_request_module --with-http_addition_module --with-http_dav_module --with-http_geoip_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_image_filter_module --with-http_v2_module --with-http_sub_module --with-http_xslt_module --with-stream --with-stream_ssl_module --with-mail --with-mail_ssl_module --with-threads

12. Starten Sie Nginx neu.
1 sudo ./configure --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-debug --with-pcre-jit --with-ipv6 --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-http_auth_request_module --with-http_addition_module --with-http_dav_module --with-http_geoip_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_v2_module --with-http_sub_module --with-http_xslt_module --with-stream --with-stream_ssl_module --with-mail --with-mail_ssl_module --with-threads --add-module=../nginx-rtmp-module-master

 13. Überprüfen Sie die Nginx-Konfigurationsinformationen erneut.

1 sudo make

Sie Sie können sehen, dass das Modul nginx-rtmp-module zu nginx hinzugefügt wurde.

1 sudo nginx /usr/sbin

Ich habe Push- und Pull-Streaming versucht und die Funktion war normal. Ich habe das ursprüngliche WEB-Projekt erneut ausgeführt und es war auch normal.

Lassen Sie mich abschließend erklären, warum Sie Nginx über apt installieren müssen. Zuerst abrufen und dann kompilieren und ersetzen. Der Grund besteht darin, die Bereitstellung von WEB-Projekten in der LUMP-Umgebung zu erleichtern. Wenn Sie Nginx nicht zuerst über apt-get installieren, laden Sie den Quellcode direkt herunter, um ihn zu kompilieren und zu installieren Das Verzeichnis ist unvollständig und es wird schwierig sein, das WEB-Projekt bereitzustellen (die Bereitstellung kann auch durch bestimmte Vorgänge erreicht werden, Sie müssen jedoch noch Zeit damit verbringen, Nginx für bestimmte Vorgänge zu studieren, ich empfehle die Installation). nginx über apt-get. Die Schritte sind einfach und sorgenfrei!

Das obige ist der detaillierte Inhalt vonVerwenden Sie nginx und nginx-rtmp-module, um einen Streaming-Media-Server zu erstellen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn