Comment utiliser Apache comme proxy inverse - Un guide étape par étape

Publié: 2023-07-23

Dans ce guide, vous trouverez la réponse à Comment utiliser Apache en tant que proxy inverse . Un serveur proxy inverse est un outil puissant qui agit comme intermédiaire entre les clients et les serveurs principaux, tels que les serveurs Web ou les serveurs d'applications. Contrairement à un proxy direct traditionnel, qui se situe entre les clients et Internet, un proxy inverse se situe entre les clients et un ou plusieurs serveurs.

Lorsqu'un client fait une demande, le serveur proxy inverse transmet cette demande au serveur principal approprié au nom du client. Il prend ensuite la réponse du serveur principal et la renvoie au client. Ce processus cache efficacement l'identité et la structure interne du serveur principal aux clients.

Les proxys inverses offrent plusieurs avantages, notamment une sécurité renforcée en protégeant les serveurs principaux d'une exposition directe à Internet, l'équilibrage de charge pour répartir les demandes des clients sur plusieurs serveurs et la mise en cache pour améliorer les performances en servant le contenu mis en cache aux clients.

Table des matières

Distinction entre proxy direct et proxy inverse

  • Direction du proxy :
    • Proxy de transfert : Gère les demandes des clients pour accéder aux ressources sur Internet. Il se situe entre les clients et Internet, transmettant les demandes des clients à des serveurs externes.
    • Proxy inverse : gère les demandes des clients pour accéder aux ressources au sein du réseau d'une organisation. Il se situe entre les clients et les serveurs principaux, transmettant les demandes des clients au serveur principal approprié.
  • Point de vue client :
    • Proxy de transfert : Les clients ne sont généralement pas au courant de l'existence du proxy direct. La demande du client est envoyée au serveur proxy et le serveur de destination reçoit la demande comme si elle provenait directement du client.
    • Proxy inverse : Les clients envoient des requêtes directement au proxy inverse, et non aux serveurs principaux. Le proxy inverse transmet ensuite les demandes aux serveurs principaux au nom des clients.
  • Cas d'utilisation:
    • Proxy de transfert : souvent utilisé pour le filtrage de contenu, le contrôle d'accès et l'anonymisation des demandes des clients en masquant les adresses IP des clients.
    • Proxy inverse : principalement utilisé pour l'équilibrage de charge, la terminaison SSL, la mise en cache et la fourniture d'une passerelle sécurisée vers les services principaux.
  • Point de vue du serveur :
    • Proxy de transfert : le serveur de destination voit la demande provenant du proxy de transfert, pas du client d'origine. Il n'a pas connaissance du client réel qui fait la demande.
    • Proxy inverse : les serveurs principaux voient le proxy inverse comme le client qui fait la demande. Ils ne connaissent pas les vrais clients qui ont fait la demande initiale.
  • Conséquences sur la sécurité :
    • Proxy de transfert : Améliore la confidentialité des clients en masquant les adresses IP des clients. Il peut également fournir des couches de sécurité supplémentaires en filtrant le contenu malveillant avant qu'il n'atteigne les clients.
    • Reverse Proxy : Agit comme un bouclier pour les serveurs principaux, gardant leur structure interne cachée aux clients externes. Il aide à protéger contre l'exposition directe à Internet et les attaques potentielles.
  • Lieu de déploiement :
    • Proxy de transfert : déployé au sein du réseau du client ou sur l'appareil du client pour contrôler l'accès Internet sortant.
    • Proxy inverse : déployé à la périphérie du réseau de l'organisation, entre Internet et les serveurs principaux, gérant les demandes entrantes des clients.

Explorer les différents cas d'utilisation des proxys inverses

Les proxys inverses offrent un large éventail de cas d'utilisation qui améliorent les performances, la sécurité et l'évolutivité des applications et services Web.

Certains des principaux cas d'utilisation des proxys inverses incluent

  • Équilibrage de charge : les proxys inverses peuvent répartir les demandes entrantes des clients sur plusieurs serveurs principaux. Cela permet de répartir la charge, d'éviter la surcharge du serveur et d'assurer une meilleure utilisation des ressources. L'équilibrage de charge améliore les performances globales et la réactivité de l'application.
  • Terminaison SSL : les proxys inverses peuvent gérer le chiffrement et le déchiffrement SSL/TLS pour le compte des serveurs principaux. Cela décharge le traitement SSL gourmand en ressources des serveurs principaux, réduisant leur charge de travail et simplifiant la gestion des certificats.
  • Mise en cache : les proxys inverses peuvent stocker les ressources fréquemment demandées dans la mémoire cache. Lorsque les clients demandent les mêmes ressources, le proxy inverse sert directement le contenu mis en cache, ce qui réduit la charge du serveur et améliore les temps de réponse.
  • Accélération Web : en mettant en cache le contenu statique et en compressant les données, les proxys inverses peuvent accélérer le chargement des pages Web pour les clients, ce qui se traduit par une expérience utilisateur plus fluide.
  • Sécurité et protection DDoS : les proxys inverses agissent comme une barrière de protection entre Internet et les serveurs principaux. Ils peuvent filtrer et bloquer le trafic malveillant, protéger contre les attaques par déni de service distribué (DDoS) et masquer la véritable adresse IP du serveur principal pour empêcher les attaques directes.
  • Pare-feu d'application Web (WAF) : les proxys inverses peuvent agir comme un WAF, inspectant le trafic entrant à la recherche de menaces potentielles, telles que l'injection SQL, les scripts intersites (XSS) et d'autres activités malveillantes. Ils aident à protéger les applications Web contre les vulnérabilités courantes.
  • Point d'entrée unique : les proxys inverses fournissent un point d'entrée unique permettant aux clients externes d'accéder à plusieurs serveurs principaux. Cela simplifie l'architecture du réseau et facilite la gestion et la mise à l'échelle des services.
  • Conversion de protocole : les proxys inverses peuvent traduire les requêtes d'un protocole à un autre. Par exemple, ils peuvent convertir les requêtes HTTP en WebSocket ou en d'autres protocoles spécifiques à l'application, facilitant ainsi la communication entre les clients et les serveurs.
  • Compression et optimisation du contenu : les proxys inverses peuvent compresser le contenu sortant avant de l'envoyer aux clients, réduisant ainsi la taille du transfert de données et améliorant les temps de chargement des pages.

Prérequis - Configurer Apache en tant que proxy inverse

Installer le client SSH au niveau du bit

  1. Recherchez Bitwise SSH Client dans votre navigateur. Cliquez sur le lien https://www.bitvise.com/ssh-client-download et lancez l'installation

2. Après l'installation de la configuration, ouvrez le fichier .exe à partir de votre ordinateur et terminez l'installation du client Bitvise SSH.

Comment se connecter au serveur SSH en utilisant bitwise ?

  1. Une fois l'installation terminée, la fenêtre ci-dessous apparaîtra. Entrez votre hôte, votre port et votre nom d'utilisateur, sélectionnez le mot de passe dans la liste déroulante Méthode initiale, puis cliquez sur connexion. Une fenêtre contextuelle apparaîtra pour entrer un mot de passe. Entrez votre mot de passe SSH.

2. Une fois connecté, cliquez sur "Nouvelle console de terminal" et un terminal apparaîtra rapidement.

Étape 1 - Installer Apache

Connecter le serveur

Maintenant, pour établir une connexion à votre serveur et actualiser l'index de packages local à l'aide des référentiels APT, entrez la commande ci-dessous dans le terminal et appuyez sur Entrée :

 mise à jour appropriée 

Les mises à jour prendront un certain temps pour se terminer en attendant qu'elles soient terminées.

Comment installer Apache sur Ubuntu ?

  1. Installer Apache sur Ubuntu

Maintenant, pour installer Apache à partir d'Ubuntu, entrez la commande ci-dessous et appuyez sur Entrée

 apt install -y apache2

2. Vérifiez la version d'Apache

Après l'installation, vous avez la possibilité de vérifier la version d'Apache à l'aide de

 apache2 -version

3. Vérifier le statut d'Apache

Vous avez également la possibilité de vérifier l'état d'Apache2 à l'aide de la commande ci-dessous. Cela vous aide à déterminer rapidement si le serveur est en cours d'exécution et s'il y a des problèmes qui nécessitent votre attention.

 systemctl status apache2

Comme vous l'observez, l'état (END) affiché sur votre écran est une indication claire d'une installation Apache2 réussie. Ce résultat confirme que le processus d'installation s'est terminé sans erreur ni problème.

4. Activer Apache

Pour activer Apache2 sur Ubuntu, utilisez la commande :

 systemctl enabled apache2

5. Démarrez Apache

Si vous souhaitez redémarrer Apache2 sur Ubuntu, utilisez la commande ci-dessous dans le terminal :

 systemctl start apache2

Comment installer Apache chez Almalinux ?

  1. Vérifier les mises à jour disponibles

Pour installer Apache2 sur Almalinux, vérifiez les mises à jour disponibles en exécutant la commande " dnf check-update" .

 dnf check-update

Si des mises à jour sont trouvées, procédez à la mise à jour de votre Linode avec "dnf update". De plus, si des composants du noyau sont mis à jour pendant le processus, n'oubliez pas de redémarrer le Linode avec "reboot" pour appliquer les modifications.

  1. Installer Apache

Procédez maintenant à l'installation des packages Apache requis.

 dnf install httpd httpd-tools
  1. Démarrer Apache

Après avoir installé Apache, il ne démarre pas automatiquement. Pour l'initier et l'activer, utilisez l'utilitaire systemctl .

 systemctl start httpd
  1. Activer Apache

Pour vous assurer qu'Apache redémarre automatiquement à chaque redémarrage du système , activez-le.

 systemctl enable httpd
  1. Vérifier l'état d'Apache

Vérifiez l'état d'Apache à l'aide de la commande "systemctl status" . Il devrait apparaître comme actif et en cours d'exécution.

 systemctl status httpd

Étape 2 - Activer les modules Apache pour le proxy inverse

Comment l'activer sur Ubuntu ?

Pour utiliser efficacement un proxy inverse avec Apache Web Server, vous devez activer des modules Apache spécifiques qui sont cruciaux pour prendre en charge les fonctionnalités supplémentaires requises par les serveurs proxy inverses.

  1. Identifier les modules requis

mod_proxy : Servant de module proxy principal pour Apache, mod_proxy gère efficacement les connexions et les redirections. Il permet à Apache de fonctionner comme une passerelle vers les serveurs principaux sous-jacents, ce qui en fait un module indispensable pour toutes les configurations de proxy inverse.

mod_proxy_http : Ce module s'appuie sur mod_proxy et est indispensable pour supporter les requêtes HTTP et HTTPS dans un environnement de serveur proxy. Il permet à Apache de gérer efficacement le proxying des applications Web à l'aide des protocoles HTTP/HTTPS .

mod_ssl : fournissant des fonctionnalités essentielles, mod_ssl équipe le serveur HTTP Apache avec la prise en charge des protocoles SSL v3 et TLS v1.x. Ce module est crucial pour établir des connexions sécurisées et cryptées, assurer l'intégrité des données et améliorer la sécurité du serveur Web.

2. Activer les modules

Maintenant, nous allons activer ces modules en utilisant la commande a2enmod :

 sudo a2enmod proxy sudo a2enmod proxy_http sudo a2enmod ssl
  1. Redémarrez le serveur Apache2

Après avoir activé tout nouveau module Apache, il est impératif de ne pas négliger l'étape cruciale du redémarrage du serveur apache2 . Cette étape garantit que les modifications prennent effet et permet aux modules nouvellement activés d'être entièrement intégrés dans la configuration du serveur Apache.

 sudo systemctl restart apache2
  1. Vérifier les modules

Vous pouvez confirmer l'état actif de ces modules en utilisant la commande suivante :

 sudo apachectl -M

Étape 3 - Configuration du proxy inverse Apache

Maintenant, configurez le proxy inverse Apache pour qu'il accepte les demandes d'Internet et les transmette efficacement à la ressource choisie.

  1. Désactiver Apache par défaut

Pour commencer, vous allez désactiver le fichier de configuration par défaut de l'hôte virtuel Apache. Ceci peut être réalisé en utilisant la commande suivante :

 a2dissite 000-default.conf
  1. Créer un nouveau fichier de configuration

La création d'un nouveau fichier de configuration d'hôte virtuel est une étape fondamentale dans la personnalisation d'Apache pour servir différentes applications Web ou sites Web sur le même serveur. UN L'hôte virtuel permet à Apache de gérer plusieurs domaines ou sous-domaines, chacun avec sa propre configuration et ses propres paramètres.

Pour créer un nouveau fichier de configuration d'hôte virtuel, suivez ces étapes générales :

Choisissez un nom : sélectionnez un nom descriptif pour votre fichier d'hôte virtuel, se terminant généralement par l'extension « .conf ». Par exemple, "exemple.com.conf" ou "cyberpanel.conf".

Accédez au répertoire de configuration d'Apache : dans la plupart des distributions Linux, les fichiers de configuration d'Apache sont stockés dans le répertoire "/etc/apache2/sites-available/" . Par exemple:

 cd /etc/apache2/sites-available/

Créez le fichier d'hôte virtuel : utilisez un éditeur de texte, tel que nano ou vi, pour créer le nouveau fichier de configuration. Par exemple:

 sudo nano example.com.conf

En entrant la commande ci-dessus, le fichier ci-dessous apparaît :

Configurer l'hôte virtuel : Dans le fichier, utilisez la directive <VirtualHost> pour définir l'adresse IP et le port pour accepter les requêtes pour l'hôte virtuel spécifique. Pour un exemple de base, autorisant toutes les adresses IP sur le port HTTP par défaut (port 80) , utilisez ce qui suit :

 <VirtualHost *:80>    ServerName site1.com    ServerAlias www.site1.com     ServerAdmin [email protected]    ErrorLog ${APACHE_LOG_DIR}/error.log    CustomLog ${APACHE_LOG_DIR}/access.log combined    ProxyPass / http://127.0.0.1:8080/    ProxyPassReverse / http://127.0.0.1:8080/    ProxyRequests Off </VirtualHost>

Le processus de configuration commence par définir l'hôte virtuel avec la commande <VirtualHost> , en spécifiant l'adresse IP et le numéro de port acceptés pour Apache. Dans ce cas, le caractère générique * est utilisé, permettant l'acceptation de toutes les adresses IP, tandis que le numéro de port est défini sur 80 , représentant le port HTTP par défaut. Ensuite, la configuration comprend en outre les éléments suivants :

  • ServerName : Cette directive spécifie le nom de domaine associé au serveur.
  • ServerAlias : avec ServerAlias, vous pouvez définir des noms supplémentaires que le serveur acceptera.
  • ServerAdmin : La directive ServerAdmin définit l'adresse e-mail de contact que le serveur inclut dans les messages d'erreur renvoyés aux clients.
  • ErrorLog : ErrorLog définit le nom d'un fichier dans lequel Apache stocke les erreurs rencontrées.
  • CustomLog : CustomLog définit le nom d'un fichier dans lequel Apache enregistre les demandes des clients sur le serveur.
  • ProxyPass : ProxyPass mappe les serveurs distants dans l'espace du serveur local et définit l'adresse cible pour la redirection du trafic. Il permet à Apache d'agir comme un proxy inverse, en transmettant les demandes aux serveurs principaux et en améliorant les performances des applications et la répartition de la charge.
  • ProxyPassReverse : ProxyPassReverse est vital pour un serveur proxy car il réécrit l'emplacement d'origine, l'emplacement du contenu et les en-têtes de réponse HTTP URI du serveur principal avec les informations du serveur proxy. Cela garantit que le proxy inverse traite correctement les réponses et empêche les serveurs principaux d'être exposés à un accès direct à Internet.
  • ProxyRequests : ProxyRequests empêche le serveur HTTP Apache d'être utilisé comme proxy de transfert, ce qui améliore la sécurité. Il doit généralement être défini sur "off" lors de l'utilisation de ProxyPass pour éviter une utilisation abusive du serveur en tant que proxy ouvert et se protéger contre les risques de sécurité potentiels.

Enregistrer et quitter : enregistrez les modifications et quittez l'éditeur de texte.

Activez l'hôte virtuel : utilisez la commande a2ensite pour activer la nouvelle configuration de l'hôte virtuel :

 sudo a2ensite example.com.conf

Recharger Apache : pour appliquer les modifications, rechargez Apache pour activer le nouvel hôte virtuel :

 sudo systemctl reload apache2

Une fois ces étapes terminées, le nouvel hôte virtuel est maintenant actif et prêt à servir son site Web ou son application désignée. Il est important de noter que les modifications ne prendront effet qu'après l'activation de l'hôte virtuel et le rechargement d'Apache. De plus, vous pouvez placer les fichiers de votre site Web dans le répertoire spécifié par la directive "DocumentRoot" pour vous assurer qu'Apache sert correctement le contenu pour cet hôte virtuel particulier.

Vérifier la configuration : assurez-vous que la configuration du proxy inverse fonctionne comme prévu. Visitez le nom de domaine désigné (par exemple, "reverse-proxy.example.com") dans un navigateur Web, et Apache devrait correctement transférer les demandes au serveur principal.

N'oubliez pas que vous devrez peut-être configurer des paramètres supplémentaires en fonction de vos cas d'utilisation spécifiques, tels que la gestion des certificats SSL, l'équilibrage de charge ou le proxy WebSocket . Surveillez régulièrement les performances et la sécurité du serveur pour garantir son bon fonctionnement.

Comment utiliser Apache comme proxy inverse dans Cyberpanel

Dans Cyberpanel, l'intégration d' Apache avec OpenLiteSpeed ​​sur le backend offre le meilleur des deux mondes, combinant les avantages de vitesse d'OpenLiteSpeed ​​avec les fonctionnalités riches en fonctionnalités d'Apache. Notamment, l'utilisation d'Apache comme proxy inverse ne compromet pas les performances du cache ls ; vous conserverez le même niveau de performance qu'avec OpenLiteSpeed ​​seul. Dans cette configuration, OpenLiteSpeed ​​reste responsable de la transmission du trafic frontal à Apache, qui gère les requêtes du backend. De plus, cette intégration est prise en charge sur les systèmes d'exploitation AlmaLinux et Ubuntu . En suivant cet article, les utilisateurs peuvent profiter pleinement des avantages offerts en combinant Apache et OpenLiteSpeed ​​dans une configuration de proxy inverse.

Connectez-vous à votre tableau de bord Cyberpanel.

Accédez à l'option Site Web Cliquez sur Créer un site Web

Entrez votre nom de domaine, votre adresse e-mail et votre version de PHP, puis sélectionnez Apache comme proxy inverse. Après avoir entré les détails, cliquez sur Créer un site Web. Cela peut prendre un certain temps et ensuite il sera créé

Ce site Web fonctionnera dans Apache en mode proxy inverse. En front-end, Openlitespeed fonctionnera, et en back-end Apache. Ainsi, toutes vos règles htaccess fonctionneront comme avant, que vous utilisiez Cpanel ou tout autre panneau de contrôle.

Vous pouvez voir que le site sera créé avec succès.

Pour ce site, vous pouvez gérer la configuration Apache pour ce site dans notre gestionnaire de site Web. Cliquez sur Gérer

Une fois que vous êtes ici, cliquez sur Apache Manager

Et même vous pouvez également passer à Openlitespeed pur. Supposons donc que vous souhaitiez décider de ne pas utiliser Apache en backend avec ce site Web. Si vous souhaitez passer à Openlitespeed pur , sélectionnez la version PHP et cliquez sur passer à Openlitespeed pur. Il peut également être converti pour utiliser Apache s'il utilise OpenLitespeed

Ce sont des configurations Apache. Vous pouvez facilement modifier si vous souhaitez modifier quelque chose, mais assurez-vous de savoir ce que vous faites car quelque chose ne va pas ici et votre site Web cessera de fonctionner.

Dans Nos configurations Apache, nous utilisons PHP-FPM, ce sont donc les configurations PHP-FPM que vous utilisez

Pour les configurations PHP Allez dans PHP et cliquez sur modifier les configurations PHP. Si vous souhaitez modifier les configurations PHP.

Si vous utilisez Apache, vous devez également modifier les configurations Php, donc si vous avez installé Apache, vous verrez cette URL.

Par défaut, vous pourrez modifier les configurations de Litespeed Php. Si vous souhaitez modifier les configurations pour Apache, cliquez également sur MODIFIER LES CONFIGURATIONS APACHE

Après avoir cliqué sur MODIFIER LES CONFIGURATIONS APACHE , vous pouvez faire ce que vous voulez avec les configurations Litespeed comme post_max_size, upload_max_filesize, max_execution_time ou autre.

Assurez-vous qu'après avoir modifié les configurations, cliquez sur Enregistrer les modifications

De même, vous pouvez également utiliser Advanced Edit

De même, vous pouvez installer les extensions PHP pour Apache. Cliquez simplement sur PHP-> Installer les extensions

Si vous utilisez Apache, vous devez également GÉRER LES EXTENSIONS APACHE , donc si vous avez installé Apache, vous verrez cette URL.  

Par défaut, vous pourrez installer des extensions pour Litespeed Php. Si vous souhaitez installer des extensions pour Apache, cliquez également sur GÉRER LES EXTENSIONS APACHE

Contenu connexe

Vous pouvez également consulter notre guide sur Apache vs NGINX Qui GAGNE en termes de performances ?