Création du fichier de configuration pour un Reverse Proxy Apache

De Wiki de Mémoire Vive
Aller à la navigation Aller à la recherche

Sources : https://www.ionos.fr/digitalguide/serveur/know-how/quest-ce-quun-reverse-proxy-le-serveur-reverse-proxy/

Pour que le reverse-proxy accepte les requêtes d’Internet et les transmettent aux serveurs appropriés sur le réseau local, vous avez besoin de désactiver le fichier de configuration par défaut avec la commande a2dissite configuration 000-default.conf il se trouve dans le répertoire /etc/apache2/sites-available et de la remplacer par un fichier hôte virtuel comme piwigo.conf. Il est conseillé de créer un fichier hôte virtuel séparé pour chaque serveur cible avec sa propre adresse IP.

Exemple avec le fichier piwigo.conf :

<VirtualHost *:80> 
ServerName piwigo.memoirevive79.mooo.com 
ProxyPreserveHost On 
ProxyRequests On 
ProxyPass / http://192.168.2.6/ 
ProxyPassReverse / http://192.168.2.6 
</VirtualHost>

Les instructions pour la fonction proxy sont définies dans la commande <VirtualHost>. La balise Start contient également l’adresse IP et le numéro de port. Apache s’il est configuré comme un serveur reverse-proxy doit recevoir les requêtes. Si toutes les adresses IP sont incluses, le métacaractère * est utilisé comme le montre l’exemple. Les informations de la balise VirtualHost sont donc affichées sous la forme de commande. Contrairement À la balise VirtualHost, ces arguments définissent comment traiter les requêtes entrantes et les paquets de réponse. Les commandes ServerName, ProxyPass et ReversePass sont particulièrement importantes.

ServerName : la commande ServerName définit le nom premier d’un serveur sur internet. Il doit être résolu soit via DNS ou via /etc/hosts. Dans cet exemple, le serveur Apache est programmé pour accepter toutes les requêtes de piwigo.memoirevive79.mooo.com.

ProxyPreserveHost est utilisée dans un serveur proxy Apache pour indiquer si l'adresse du serveur hôte d'origine doit être préservée lorsqu'elle est envoyée à l'arrière-plan.

ProxyRequests est une directive de configuration dans Apache qui contrôle si Apache doit agir en tant que serveur proxy pour les demandes HTTP entrantes. Si la valeur de ProxyRequests est définie sur On, cela indique qu'Apache acceptera les demandes de proxy et les transmettra à un autre serveur Web en aval. En d'autres termes, cela permet à Apache de se comporter en tant que reverse proxy. l’argument Off empêche le serveur Apache HTTTP d’être utilisé comme un proxy-forward afin d’éviter d’éventuels abus.

ProxyPass : la commande ProxyPass définit l’adresse cible pour une redirection. Toutes les requêtes qui sont destinées à une adresse publique sont transférer par le reverse-proxy à l’adresse interne spécifiée dans le ProxyPass. Dans l’exemple, cela serait l’adresse IP 192.168.2.6.

ProxyPassReverse : un serveur proxy ne reçoit pas seulement des requêtes, il peut aussi transférer des paquets de réponse des serveurs d’arrière-plan aux clients. Pour éviter que ces réponses (à savoir ceux du serveur en arrière-plan) contiennent un en-tête d’information incorrect, la commande ProxyPassReverse réécrit l’en-tête des réponses du serveur pour qu’elles puissent être en accord avec le serveur proxy. Le serveur d’arrière-plan reste donc anonyme.

De plus, il existe aussi deux commandes supplémentaires : ServerAlias et ProxyRequests. Ces commandes ne représentent pas des fonctions de base pour le serveur proxy et sont donc plutôt facultatives.

ServerAlias : la commande ServerAlias autorise à définir un nom différent pour le serveur cible en complément du nom premier du serveur.

ProxyRequest : la commande ProxyRequests avec l’argument Off empêche le serveur Apache HTTTP d’être utilisé comme un proxy-forward afin d’éviter d’éventuels abus.