Introduction
Les extensions tierces sont des ajouts extrêmement utiles. Elles rendent votre expérience de configuration et de travail avec un serveur, tel qu’Apache HTTP, beaucoup plus simple et plus facile. En cas de besoin, vous pouvez même utiliser certains de ces modules dans Apache pour exécuter un proxy inverse. Vous pouvez soit supprimer une couche de la configuration de votre serveur, soit utiliser un module pour rediriger les connexions.
Dans ce guide, nous aborderons Apache et les différents modules associés à la plateforme de serveur, tels que mod_proxy. Nous verrons également comment vous pouvez l’utiliser comme un proxy inverse pour rediriger les connexions vers vos serveurs d’applications backend.
Qu’est-ce qu’Apache ?
Apache est un serveur HTTP qui est très couramment utilisé à des fins liées au web. Mais vous pouvez l’utiliser pour diverses raisons et sur plusieurs plateformes. Vous pouvez installer votre serveur web Apache sur Ubuntu en suivant notre tutoriel étape par étape. De plus, suivez ce tutoriel pour apprendre à sécuriser votre serveur Apache avec Let’s Encrypt. Vous pouvez également consulter comment configurer des hôtes virtuels Apache sur Ubuntu 20.04.
Vous pouvez approfondir l’exploration des fonctions et de l’implémentation d’Apache à l’aide de modules externes. Il s’agit de modules tiers que vous pouvez utiliser pour effectuer diverses tâches relatives aux connexions et aux configurations. Par exemple, vous pouvez utiliser le module mod_rewrite pour effectuer une réécriture d’URL basée sur des règles. Un autre de ces modules est mod_proxy. Ce dernier module est largement sous-utilisé dans la communauté. Principalement parce que beaucoup de gens ne sont pas conscients de l’étendue de ses fonctionnalités et de ses applications. Mod_proxy, comme son nom l’indique, peut vous aider à mettre en place une passerelle ou un proxy pour les serveurs backend.
Découvrons le mod_proxy en détail et comment vous pouvez l’utiliser comme proxy inverse.
Mod_proxy : Utiliser Apache comme proxy inverse
Comme vous pouvez probablement le deviner, mod_proxy est un module. Il s’agit d’un module d’Apache que vous pouvez utiliser pour former et rediriger diverses connexions. Vous pouvez également l’activer et le configurer comme n’importe quel autre module sur votre système. La particularité de mod_proxy est qu’il ne s’agit pas d’un seul module. En fait, il comprend une collection de différents modules que vous trouverez ci-dessous. Chacun d’eux a sa propre fonction à remplir. De cette façon, mod_proxy vous offre une grande diversité de fonctionnalités.
Jetez un coup d’œil aux modules mod_proxy suivants :
mod_proxy
Il s’agit du module de proxy principal. Dans Apache, vous pouvez utiliser ce module pour configurer et gérer diverses connexions. Il peut également vous aider à rediriger les connexions.
mod_proxy_http
Comme son nom l’indique, ce module traite des protocoles HTTP et HTTPS. Vous pouvez utiliser ce module pour implémenter les fonctionnalités de proxy de ces protocoles.
mod_proxy_ftp
Mod_proxy_ftp fonctionne lorsque vous traitez avec le protocole FTP.
mod_proxy_connect
Ce module est utile lorsque vous effectuez un tunnel SSL.
mod_proxy_ajp
Vous pouvez utiliser mod_proxy_ajp lorsque vous travaillez avec le protocole AJP.
mod_proxy_wstunnel
Ceci est utile lorsque vous travaillez avec des web sockets comme WS et WSS.
mod_proxy_balancer
Si vous cherchez à accéder aux fonctionnalités de répartition de charge (load balancing) et de clustering, vous pouvez utiliser ce module.
mod_cache
Le module mod_cache est utile, comme on s’y attend, à des fins de mise en cache.
mod_headers
Vous pouvez utiliser ce module pour gérer les en-têtes que vous créez à l’aide du protocole HTTP.
mod_deflate
Ce module est utilisé à des fins de compression.
Si vous souhaitez en savoir encore plus sur ces modules, vous pouvez visiter le site officiel d’Apache. La documentation officielle vous donne également plus d’informations sur mod_proxy et Apache lui-même.
Comment installer Apache et mod_proxy ?
Voici quelques étapes simples à suivre pour installer Apache et mod_proxy sur votre système :
- Préparer le serveur
Tout d’historique, vous devez vous assurer que votre serveur cloud est prêt. Pour ce faire, vous devez mettre à jour votre système d’exploitation et les logiciels associés vers les dernières versions.
Utilisez les commandes suivantes pour mettre à niveau vos applications :
|
1 2 3 |
apt install aptitude aptitude update aptitude -y upgrade |
- Installer le package des essentiels
Une fois que vous avez préparé votre serveur, vous devez l'équiper des outils essentiels. À cette fin, vous devez installer le paquet build-essential. Ce paquet se compose de tous les outils de base dont vous avez besoin pour installer des éléments à partir des sources. Vous pouvez l'installer avec cette commande :
|
1 |
aptitude install -y build-essential |
- Récupérer les modules et les dépendances
Enfin, vous devez installer les modules et les dépendances. Vous pouvez le faire en exécutant la commande suivante :
|
1 |
aptitude install -y apache2 apache2-bin libxml2-dev |
Activation des modules : comment configurer Apache avec des connexions proxy ?
Avant même de configurer Apache, vous devez activer vos modules. Ces modules vous aideront à effectuer les configurations nécessaires et à réaliser diverses tâches.
Pour commencer, vous devez vérifier quels modules fonctionnent déjà sur votre système. De plus, vous devez également vous assurer que tous les modules sont correctement installés et peuvent être activés. L'exécution de cette commande affichera tous les modules disponibles sur votre serveur Apache :
|
1 |
a2enmod |

Comme vous pouvez le voir, la réponse vous montre tous les modules disponibles sous la forme d'une liste détaillée. Parcourez cette liste et déterminez les modules que vous souhaitez activer. Pour le faire savoir à Apache, vous pouvez utiliser la commande suivante et saisir les modules de votre choix à la place des exemples :
|
1 |
proxy proxy_ajp proxy_http rewrite deflate headers proxy_balancer proxy_connect proxy_html lbmethod_byrequests |
D'un autre côté, vous pouvez également activer chaque module individuellement. Pour ce faire, vous utiliseriez les commandes suivantes :
|
1 2 3 4 5 6 7 8 9 10 |
a2enmod proxy a2enmod proxy_http a2enmod proxy_ajp a2enmod rewrite a2enmod deflate a2enmod headers a2enmod proxy_balancer a2enmod proxy_connect a2enmod proxy_html a2enmod lbmethod_byrequests |
Certains modules seront probablement activés par défaut sur votre serveur. Vous vous demandez peut-être comment confirmer qu'ils sont activés. Pour vous assurer que le module souhaité est actif, vous pouvez essayer de l'activer deux fois. Cela garantira que le module est activé.
- Modifier les paramètres de configuration par défaut
Tout d'abord, vous devez modifier les paramètres de configuration par défaut. Pour ce faire, vous devez accéder au fichier de configuration par défaut qui est 000-default.conf. Ce fichier est situé dans /etc/apache2/sites-enabled. Nous devons le modifier de manière à ce qu'il obtienne la fonction de proxy.
Vous commencerez par ouvrir l'éditeur de texte nano pour modifier l'hôte virtuel par défaut. Vous pouvez le faire en exécutant cette commande :
|
1 |
nano /etc/apache2/sites-enabled/000-default.conf |
Nous ferons collectivement référence à mod_virtual host et mod_proxy sous le nom d'hôte virtuel proxy. Maintenant, vous pouvez implémenter les paramètres de configuration suivants. Vous pouvez apporter les modifications nécessaires comme vous le jugez bon pour votre système et vos exigences :
|
1 2 3 4 5 6 7 |
<VirtualHost *:*> ProxyPreserveHost On ProxyPass / http://0.0.0.0:8080/ ProxyPassReverse / http://0.0.0.0:8080/ ServerName localhost </VirtualHost> |
Vous pouvez enregistrer et quitter après avoir appuyé sur Ctrl + X et confirmé avec Y.
- Activer la fonctionnalité de répartition de charge
L'équilibrage de charge vous aide à distribuer efficacement les connexions sur votre proxy. C'est une idée très utile lorsque vous utilisez plusieurs serveurs d'applications back-end au lieu d'un seul. La fonctionnalité d'équilibrage de charge distribuera la connexion ou la « charge ».
Pour activer cette fonctionnalité, vous devez répéter les étapes mentionnées précédemment dans ce guide. Cependant, vous devez utiliser les paramètres de configuration suivants lors de la configuration de l'hôte virtuel :
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<VirtualHost *:*> <Proxy balancer://mycluster> # Définir les serveurs d'arrière-plan : # Serveur 1 BalancerMember http://0.0.0.0:8080/ # Serveur 2 BalancerMember http://0.0.0.0:8081/ </Proxy> # Appliquer les paramètres VH souhaités # Cependant, configurer l'argument ProxyPass pour # utiliser "mycluster" pour répartir la charge ProxyPass / balancer://mycluster </VirtualHost> |
- Activer la prise en charge du proxy inverse
Vous devrez faire en sorte qu'un hôte virtuel prenne en charge votre proxy inverse si vous travaillez avec des connexions SSL et des certificats. Cet hôte virtuel secondaire doit avoir les paramètres suivants. Vous devrez suivre les instructions des étapes précédentes. Tout ce que vous avez à faire est de remplacer les options de configuration par celles mentionnées ci-dessous :
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<VirtualHost *:443> SSLEngine On # Définir le chemin vers le certificat SSL # Utilisation : SSLCertificateFile /chemin/vers/cert.pem SSLCertificateFile /etc/apache2/ssl/file.pem # Serveurs pour relayer la connexion, ou ; # Liste des serveurs d'application : # Utilisation : # ProxyPass / http://[Adr. IP]:[port]/ # ProxyPassReverse / http://[Adr. IP]:[port]/ # Exemple : ProxyPass / http://0.0.0.0:8080/ ProxyPassReverse / http://0.0.0.0:8080/ # Ou, répartir la charge : # ProxyPass / balancer://nom_du_cluster_de_repartition </VirtualHost> |
Vous devrez également activer le module SSL pour que la configuration ci-dessus fonctionne :
|
1 |
sudo a2enmod ssl |
- Redémarrer Apache
Toutes les configurations sont terminées. Enfin, vous pouvez redémarrer votre serveur Apache pour appliquer les modifications. Vous pouvez redémarrer Apache en exécutant la commande suivante :
|
1 |
service apache2 restart |
Conclusion
Voilà ! Vous venez de configurer avec succès une passerelle de proxy inverse sur votre serveur Apache. Désormais, Apache redirigera les connexions entrantes vers vos serveurs d'application en arrière-plan.
L'avantage de cette méthode est que le processus de configuration demande peu d'efforts et est assez simple. Maintenant que vous connaissez les étapes exactes pour y parvenir, vous ne devriez avoir aucun mal à configurer un proxy inverse dans Apache.
Bonne informatique !

Commentaires
Aucun commentaire pour l'instant. Soyez le premier.