Apache
Création de Virtual Hosts
Pré-requis
- Paquet Apache installé :
sudo apt update && sudo apt install apache2 - Accès root ou sudo
- Nom de domaine pointant vers le serveur (ou modification locale de
/etc/hosts)
Création du répertoire du site
sudo mkdir -p /var/www/mon-site.com/public_html
sudo chown -R $USER:$USER /var/www/mon-site.com/public_html
sudo chmod -R 755 /var/www
Exemple de fichier de test :
echo "<h1>Bienvenue sur mon-site.com</h1>" > /var/www/mon-site.com/public_html/index.html
Création du fichier de configuration
Les fichiers sont stockés dans /etc/apache2/sites-available/.
sudo nano /etc/apache2/sites-available/mon-site.com.conf
Exemple de configuration minimale :
<VirtualHost *:80>
ServerName mon-site.com
ServerAlias www.mon-site.com
DocumentRoot /var/www/mon-site.com/public_html
ErrorLog ${APACHE_LOG_DIR}/mon-site.com_error.log
CustomLog ${APACHE_LOG_DIR}/mon-site.com_access.log combined
</VirtualHost>
Activation du site
sudo a2ensite mon-site.com.conf
sudo systemctl reload apache2
Vérification
- Tester la configuration Apache :
sudo apache2ctl configtest - Aller sur
http://mon-site.comouhttp://<IP>
Désactiver un site
sudo a2dissite mon-site.com.conf
sudo systemctl reload apache2
Notes utiles
- Répertoire des sites disponibles :
/etc/apache2/sites-available/ - Répertoire des sites activés :
/etc/apache2/sites-enabled/ - Fichier par défaut :
/etc/apache2/sites-available/000-default.conf
Page d'erreur sur reverse proxy
Objectif
Lorsque ProxyPass / est utilisé, toutes les requêtes sont envoyées au backend.
Pour que les pages d'erreur restent accessibles même si le backend est indisponible, il faut les servir directement depuis Apache.
Configuration
# Ne pas proxifier les pages d'erreur
ProxyPass /errors/ !
# Répertoire des fichiers servis localement
DocumentRoot /var/www/exaldc
# Page d'erreur personnalisée
ErrorDocument 503 /errors/503.html
Arborescence
/var/www/exaldc/errors/503.html
À retenir
-
ProxyPass /errors/ !: exclut/errors/du reverse proxy. -
DocumentRoot: emplacement des fichiers servis par Apache. -
ErrorDocumentattend une URL locale, pas un chemin de fichier. -
Les pages d'erreur sont ainsi affichées même si le backend est hors service.
Exemple
Requête :
https://monserveur/errors/503.html
Fichier servi :
/var/www/exaldc/errors/503.html