[LINUX] Bringen Sie DLNA mit ReadyMedia + Reverse Proxy zwangsweise heraus

Überblick

Ich habe versucht, DLNA herauszubringen, wenn ich die Audiomedien zu Hause im Freien benutze. Die Umgebung ist begrenzt, aber ich habe es geschafft, also ein Memorandum.

Beispiel für Umgebungskonfiguration und Einstellwert

Terminal Ort Betriebssystembeispiel Rolle host name Global IP VPN IP Private IP
Server (1) Zuhause Cent OS 7
(Raspberry Pi 3)
DLNA Server 192.168.5.2 192.168.1.2
Server (2) Vermietung Cent OS 7
(Vermietung)
HTTP Gateway dlna.mydomain.org available 192.168.5.3
Client Draussen android / iPhone Player

Benutztes Werkzeug

Verfahren

Vorgehensweise (1) Domäneneinstellung

Legen Sie die Zuordnung zwischen der globalen IP des Servers (2) und dem Hostnamen fest. (Domain-Registrar, DDNS-Service-Site usw.)

Schritt (2) [Server (1)] Erstellen Sie ReadyMedia

Installieren Sie ReadyMedia auf Ihrem lokalen Server und erstellen Sie einen DLNA-Server. (Die Bauweise wird weggelassen, da es sich um 2 ^ 10 Abkochung handelt)

Schritt (3) [Server (1), Server (2)] VPN-Aufbau

Da es sich um einen Reverse Proxy handelt, besteht der Zweck darin, die gegenseitige Kommunikation zwischen Servern zu ermöglichen. Nicht erforderlich, wenn sich beide Server im selben Netzwerk befinden. Eine andere VPN-Konstruktion als Tinc VPN ist ebenfalls möglich, sodass sie weggelassen wird. (Ich meine, es wird länger, wenn ich es schreibe ...)

Schritt (4) [Server (2)] Proxy-Einstellungen umkehren

Der Hauptteil dieses Artikels. Stellen Sie den Reverse Proxy auf dem virtuellen Host ein. DLNA kommuniziert mit dem Server in XML, Da der vollständige Pfad zum Inhalt die IP-Adresse enthält, wird diese zurückgegeben Sie können das Medium nicht über den Reverse Proxy erreichen. Ersetzen Sie daher die in XML beschriebene IP durch die Hostadresse. Da die Kommunikation zwischen Servern über VPN erfolgt, ist die Ersatz-Quell-IP die IP über VPN.

Artikel Wert
Hostname dlna.mydomain.org
Weiterleitungsziel 192.168.5.2:8200

apache:/etc/httpd/conf.d/httpd-vhosts.conf


<VirtualHost *:80>
  ServerName dlna.mydomain.org

  AddOutputFilterByType SUBSTITUTE text/xml
  Substitute "s|192.168.5.2:8200|dlna.mydomain.org|i"

  ProxyRequests Off
  ProxyPass / http://192.168.5.2:8200/
  ProxyPassReverse / http://192.168.5.2:8200/
</VirtualHost>

terminal


systemctl restart httpd.service

Schritt (5) [Client]

Hören Sie mit der Smartphone-Version von foobar2000.

Artikel Wert
Client foober2000
(Google Play,AppStore)
URL http://dlna.mydomain.org/rootDesc.xml

Einstellungsbildschirm

foober2000.png

Bildschirmbeispiel

foober2000.png

Impressionen

Referenz

-Mod_substitute - Apache HTTP Server Version 2.4 https://httpd.apache.org/docs/2.4/mod/mod_substitute.html -VirtualHost für den Reverse-Proxy für den Zugriff mit einem völlig anderen IP- / Hostnamen --Qiita https://qiita.com/tkykmw/items/d7f07f26b89f923d57d5 -Text umschreiben von Apache mod_substitute + mod_filter --doodle-on-web https://www.doodle-office.work/entry/mod_substitute_mod_filter · Mod rewrite - Apache mod_substitute auf HTTP-Anfrage zum Umkehren des Proxy-Hosts - Probleme für Anfänger https://tutorialmore.com/questions-757269.htm

Recommended Posts

Bringen Sie DLNA mit ReadyMedia + Reverse Proxy zwangsweise heraus
Reverse Proxy mit Apache 2.4 unter Ubuntu 19.10 Eoan Ermine