[LINUX] Sortez de force DLNA avec ReadyMedia + Reverse Proxy

Aperçu

J'ai essayé de faire ressortir DLNA lors de l'utilisation du support audio à la maison à l'extérieur. L'environnement est limité, mais j'ai réussi à le faire, donc un mémorandum.

Exemple de configuration et de réglage de l'environnement

Terminal endroit Exemple de système d'exploitation rôle host name Global IP VPN IP Private IP
Server (1) domicile Cent OS 7
(Raspberry Pi 3)
DLNA Server 192.168.5.2 192.168.1.2
Server (2) de location Cent OS 7
(de location)
HTTP Gateway dlna.mydomain.org available 192.168.5.3
Client Extérieur android / iPhone Player

Les outils utilisés

procédure

Procédure (1) Paramétrage du domaine

Définissez l'association entre l'adresse IP globale du serveur (2) et le nom d'hôte. (Registraire de domaine, site de service DDNS, etc.)

Étape (2) [Server (1)] Build ReadyMedia

Installez ReadyMedia sur votre serveur local et créez un serveur DLNA. (La méthode de construction est omise car il s'agit de 2 ^ 10 décoction)

Étape (3) [Serveur (1), Serveur (2)] Construction VPN

Puisqu'il s'agit d'un proxy inverse, le but est de permettre une communication mutuelle entre les serveurs. Non requis si les deux serveurs sont sur le même réseau. En outre, la construction VPN est possible autre que Tinc VPN, elle est donc omise. (Je veux dire, ça devient plus long quand je l'écris ...)

Étape (4) [Serveur (2)] Paramètres du proxy inverse

La partie principale de cet article. Définissez le proxy inverse sur l'hôte virtuel. DLNA communique avec le serveur en XML, Parce que le chemin d'accès complet au contenu inclut l'adresse IP est retourné Vous ne pouvez pas atteindre le média via le proxy inverse. Par conséquent, remplacez l'adresse IP décrite dans XML par l'adresse d'hôte. Puisque la communication entre les serveurs se fait via VPN, l'IP source de remplacement est l'IP via VPN.

article valeur
nom d'hôte dlna.mydomain.org
Destination de transfert 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

Étape (5) [Client]

Écoutez en utilisant la version smartphone de foobar2000.

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

Écran de réglage

foober2000.png

Échantillon d'écran

foober2000.png

Impressions

référence

-Mod_substitute - Serveur HTTP Apache version 2.4 https://httpd.apache.org/docs/2.4/mod/mod_substitute.html -VirtualHost pour l'accès proxy inverse avec un IP / nom d'hôte complètement différent https://qiita.com/tkykmw/items/d7f07f26b89f923d57d5 -Réécriture de texte par Apache mod_substitute + mod_filter --doodle-on-web https://www.doodle-office.work/entry/mod_substitute_mod_filter · Réécriture de mod --Apache mod_substitute sur requête HTTP à l'hôte proxy inverse - Problème pour les débutants https://tutorialmore.com/questions-757269.htm

Recommended Posts

Sortez de force DLNA avec ReadyMedia + Reverse Proxy
Proxy inverse avec Apache 2.4 sur Ubuntu 19.10 Eoan Ermine