Activation des modules nécessaires
Pour ce faire, nous avons besoin de deux modules Apache non activés par défaut, proxy
et proxy_http
, on les active de la sorte :
- sudo a2enmod proxy proxy_http
On n’oublie pas de redémarrer le serveur Apache pour les prendre en compte :
- sudo /etc/init.d/apache2 restart
Exemple d’utilisation avec Icecast et Shoutcast
Le serveur de streaming Icecast ou Shoutcast écoute en général le port 8000. Si par exemple vous souhaitez afficher le serveur en question sur un sous-domaine du type http://streaming.domaine.tld
et éviter que les utilisateurs, sans spécifier le port :8000
à la fin de l’adresse, tombent sur la page par défaut d’Apache, il suffit de créer un VirtualHost spécifique.
Un exemple de VirtualHost de base serait :
- <VirtualHost *:80>
- ServerAdmin postmaster@domaine.tld
- ServerName streaming.domaine.tld
- DocumentRoot /var/www/
- </VirtualHost>
Dès lors, le visiteur utilisant l’adresse http://streaming.domaine.tld
devrait voir la page de base "It works" d’Apache. Nous souhaitons qu’il voie l’interface du serveur de streaming qui elle est accessible sur le port :8000
.
Pour ce faire nous allons supprimer la ligne DocumentRoot
qui ne sert plus à rien et ajouter ces trois lignes à notre VirtualHost :
- ProxyPass / http://localhost:8000/
- ProxyPassReverse / http://localhost:8000/
- ProxyPreserveHost On
Si le virtualhost est actif, on recharge la configuration d’Apache :
- /etc/init.d/apache2 reload
Dès lors, en utilisant la même adresse, le visiteur sera redirigé de manière transparente vers l’interface souhaitée.
Le fichier du VirtualHost final ressemblera donc à :
- <VirtualHost *:80>
- ServerAdmin postmaster@domaine.tld
- ServerName streaming.domaine.tld
- ProxyPass / http://localhost:8000/
- ProxyPassReverse / http://localhost:8000/
- ProxyPreserveHost On
- </VirtualHost>