Documentation technique : Debian
Documentation basée sur la distribution Debian

> > > > mod_proxy : rediriger en tout transparence Apache vers un port (...)

mod_proxy : rediriger en tout transparence Apache vers un port spécifique

Il peut être utile de rediriger certaines requêtes pointant normalement sur le serveur Apache (utilisant le port 80) par exemple vers un autre port du serveur afin d’utiliser d’autres services comme icecast ou shoutcast par exemple. On appelle cela du Reverse Proxy.

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 :

  1. sudo a2enmod proxy proxy_http

On n’oublie pas de redémarrer le serveur Apache pour les prendre en compte :

  1. 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 :

  1. <VirtualHost *:80>
  2.         ServerAdmin postmaster@domaine.tld
  3.         ServerName streaming.domaine.tld
  4.         DocumentRoot /var/www/
  5. </VirtualHost>

Télécharger

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 :

  1.         ProxyPass / http://localhost:8000/
  2.         ProxyPassReverse / http://localhost:8000/
  3.         ProxyPreserveHost On

Télécharger

Si le virtualhost est actif, on recharge la configuration d’Apache :

  1. /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 à :

  1. <VirtualHost *:80>
  2.         ServerAdmin postmaster@domaine.tld
  3.         ServerName streaming.domaine.tld
  4.         ProxyPass / http://localhost:8000/
  5.         ProxyPassReverse / http://localhost:8000/
  6.         ProxyPreserveHost On
  7. </VirtualHost>

Télécharger

  • Auteur :
  • Publié le :
  • Mis à jour : 03/03/14

7 commentaires


Qui êtes-vous ?
[Se connecter]
Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.