Passer au contenu principal

Apache 2

Introduction

Dans cette docs vous retrouverez comment déploier un serveur apache2, le configurer proprement et mettre en place un reverse proxy ainsi que des commandes utiles.

Le logiciel libre Apache HTTP Server (Apache) est un serveur HTTP créé et maintenu au sein de la fondation Apache. Jusqu'en avril 20192, ce fut le serveur HTTP le plus populaire du World Wide Web. Il est distribué selon les termes de la licence Apache.

Installation

Rien de plus simple pour l'installation de Apache 2

Configuration

Les fichiers de configuration de site présent dans /etc/apache2/sites-available/, par défaut vous retrouverez le fichier 000-default.conf avec la configuration suivante.

<VirtualHost *:80>
        ServerName www.example.com

        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Je vous conseil de garder un exemple de ce fichier, rendez-vous dans le dossier et faite un cp 000-default.conf 000-template.conf cela vous permettera de faire un retour en arrière ou de vous basé sur une préconfiguration existante lors du déploiement de nouvelle configuration.

Modifions le fichier 000-default.conf pour une configuraiton basique.\

nano 000-default.conf
<VirtualHost *:80>
        ServerName www.iskia.fr #Renseignez votre nom de domaine

        ServerAdmin contact@iskia.fr #Renseignez votre adresse mail de contact
        DocumentRoot /var/www/vitrine #Renseignez le chemin d'accès à votre site

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Si vous souhaitez avoir un deuxième site hébergé sur votre serveur mais accessible via un sous-domaine de votre site, voici la configuration de base à effectuer. Exemple de configuration pour Bookstack.

nano 001-bookstack.conf
<VirtualHost *:80>
        ServerName wiki.iskia.fr #Renseignez votre nom de domaine avec le sous-domaine correspondant

        ServerAdmin contact@iskia.fr #Renseignez votre adresse mail de contact
        DocumentRoot /var/www/bookstack #Renseignez le chemin d'accès à votre site
        <Directory /var/www/bookstack/public>
          Options FollowSymlinks
          AllowOverride All
          Require all granted
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Reverse Proxy

Si vous avez une application web qui utilise un port web autre que 80, mais que vous voulez qu'elle soit accessible via une URL sans port, vous devez mettre en place un reverse-proxy.

Dans l'exemple ci-dessous, je place mon reverse proxy sur le port 3000 dans mon fichier de configuration de site apache sous ssl 000-default-le-ssl.conf. Vous pouvez retrouver comment déployer du ssl dans la page suivante !.

RequestHeader set "X-Forwarded-Proto""https"
SetEnv proxy-nokeepalive 1
ProxyPass / http://127.0.0.1:3000/
ProxyPassReverse / http://127.0.0.1:3000/
ProxyErrorOverride off
SetEnv proxy-nokeepalive 1
ProxyPreserveHost On

Commandes

Commande Description
a2enmod [nom du module] Permet d'activer des modules apache
a2ensite [nom du fichier] Permet d'activer une nouvelle configuration de site
a2enconf [nom de la configuration] Permet d'activer une configuration
systemctl restart apache2 Permet de relancer le service apache2
cat /var/log/apache2/access.log Permet d'afficher les logs d'accès à votre site
cat /var/log/apache2/error.log Permet d'afficher les logs d'erreur à votre site