Apache : Héberger plusieurs apps sur différents ports
I. Présentation
Sans aucun doute, sur un seul serveur web nous pouvons exécuter plusieurs instances web via le mécanisme de la redirection de port, par exemple nous pouvons avoir 3 applications web sur un seul serveur et chaque application écoute sur un port différent de l'autre.
II. Configuration
Admettant que vous avez déjà apache installé sur votre serveur et que vous avez en effet 3 applications web configurée sur le même équipement, le but c'est d'effectuer la redirection de chacune de ses applications sur des ports d'écoutes différents à partir des fichiers "*.conf" d'Apache.
Pour commencer nous devrons accéder au répertoire /etc/apache2/ afin d'ajouter les ports qu'on souhaite les mettre en "Listen" en effectuant une modification sur le fichier de configuration ports.conf, ceci en utilisant votre éditeur préféré (mon cas c'est nano).
Par défaut, avant de réaliser les modifications le seul port sur lequel écoute Apache c'est le port 80 (Listen 80), dans notre cas nous avons ajouté le port 2017 et 2018 avec la syntaxe (Listen 2017, Listen 2018), à la fin, n'oubliez pas d'enregistrer les modifications apportées au niveau de la configuration.
Par ailleurs, pour des raisons de sécurité on copie le fichier de configuration 000-default.conf situé au /etc/apache2/sites-available par la commande suivante :
root@debian:/etc/apache2/sites-available# cp 000-default.conf ./001-default.conf
- 001-default.conf : nouveau nom de fichier
Au niveau de fichier 001-default.conf, vous devez ajouter les "Serveurs Virtuels" ou "VirtualHost" qui ont comme principe à faire fonctionner plusieurs Serveurs et/ou Applications Web sur la même machine, les serveurs virtuels peuvent être configuré soit avec "IP" ou "Nom".
La syntaxe que vous devez injecter dans votre configuration :
<VirtualHost 192.168.0.27:2018> ServerAdmin webmaster@localhost DocumentRoot /var/www/web2 ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
- 192.168.0.27 : Adresse du serveur.
- ServerAdmin : adresse e-mail que le serveur inclut dans les messages d'erreurs envoyés au client.
- 2018 : le port d'écoute que nous avons configuré dans le fichier ports.conf .
- DocumentRoot /var/www/web2 le chemin de mon serveur ou application Web.
- ErrorLog : directive utilisé pour journaliser les erreurs.
- CustomLog : directive utilisé pour journaliser les requêtes à destination vers le serveur.
En outre, nous pouvons ajouter la directive ServerName si vous avez un serveur DNS.
Pour finir on tape la commande ci-dessous afin d'activer la configuration de nos serveurs virtuels.
root@debian:/etc/apache2/sites-available# a2ensite 001-default.conf
N.B : si vous avez un firewall devant votre serveur web, il faut penser à effectuer les ouvertures de flux.
III. Conclusion
Pour finir, je vous recommande de prendre une machine "debian" puis mettre en place "Apache" et commencer la pratique. A vos claviers !