Comment configurer Apache comme proxy inversé

Comment configurer Apache comme proxy inversé

Un serveur proxy inversé est un serveur Web qui accepte les demandes des clients et les achemine vers le serveur backend approprié. Dans ce cas, le proxy inversé est le serveur orienté Internet, et les applications backend fonctionnent sur localhost ou le réseau LAN.

Apache est le serveur Web le plus populaire qui peut également être configuré en tant que serveur proxy inversé. Dans ce tutoriel, vous apprendrez la configuration du serveur proxy inversé Apache sur un système Linux.

Scénario de Nework

Nous avons deux applications qui s'exécutent avec le serveur Tomcat au port localhost 8080. Peu importe si les applications fonctionnent avec Tomcat ou tout autre service comme Nodejs, etc. Les URL des deux applications locales sont:

  • http: // localhost: 8080 / Demo1
  • http: // localhost: 8080 / Demo2

Maintenant, j'ai installé le serveur Apache sur le même hôte en cours d'exécution sur le port 80. Le serveur Apache accepte les demandes des utilisateurs d'Internet et les transmet aux applications correspondantes exécutées à l'arrière. Nous devons configurer le proxy pour transmettre les demandes comme suit:

  • http: // Exemple.com >> http: // localhost: 8080 / Demo1 /
  • http: // Exemple.net >> http: // localhost: 8080 / Demo2 /
  • Domaine http: //.com / demo1 / >> http: // localhost: 8080 / Demo1 /
  • Domaine http: //.com / demo2 / >> http: // localhost: 8080 / Demo2 /

Pour mieux comprendre le diagramme ci-dessous:

Alors, le début de la configuration:

Étape 1: Configuration du module proxy Apache

Par défaut, ce module est activé dans Apache pour les utilisateurs qui ont installé à l'aide de packages RPM. Les utilisateurs basés à Debian doivent activer manuellement les modules.

  • Systèmes basés sur RedHat: modifier le fichier de configuration proxy / etc / httpd / confre.modules.d / 00-proxy.confli Décommente les entrées suivantes. Si ce n'est pas disponible, ajoutez-les.
    Modules de chargement proxy_module / mod_proxy.SO LOADMODULE PROXY_HTTP_MODULE Modules / mod_proxy_http.donc 
  • Systèmes basés sur Debian: utilisez la commande suivante pour activer le module proxy avec Apache.
    sudo a2enmod proxy proxy_http  

Après avoir activé les modules, vous devrez redémarrer les services Apache pour appliquer les modifications immédiatement.

Étape 2: Configurer l'hôte virtuel Apache

Va maintenant commencer à travailler avec l'hôte virtuel. Nous créons trois hôtes virtuels comme ci-dessous. Vous ne créez que ce qui est requis avec les modifications nécessaires. Modifiez le fichier de configuration principale d'Apache et commencez par la configuration.

  • Premier exemple d'hôte virtuel:
  • Pour transmettre toutes les demandes envoyées à l'exemple.com pour backend application correspondante de serveur Tomcat comme:

    • http: // Exemple.com >> http: // localhost: 8080 / Demo1 /

    Configurez le premier hôte virtuel comme ci-dessous:

    Exemple de nom de serveur.com proxyrequests sur proxypass / http: // localhost: 8080 / demo1 / proxypassreverse / http: // localhost: 8080 / demo1 /
    12345678 Exemple de nom de serveur.com proxyrequests sur proxypass / http: // localhost: 8080 / demo1 / proxypassreverse / http: // localhost: 8080 / demo1 /

  • Deuxième exemple d'hôte virtuel:
  • Pour transmettre toutes les demandes envoyées à l'exemple.Net to backend Tomcat Server Application correspondante comme:

    • http: // Exemple.net >> http: // localhost: 8080 / Demo2 /

    Configurer un hôte virtuel comme celui-ci.

    Exemple de nom de serveur.proxyréquest net sur proxypass / http: // localhost: 8080 / demo2 / proxypassreverse / http: // localhost: 8080 / demo2 /
    12345678 Exemple de nom de serveur.proxyréquest net sur proxypass / http: // localhost: 8080 / demo2 / proxypassreverse / http: // localhost: 8080 / demo2 /

  • Troisième exemple d'hôte virtuel:
  • Pour transférer toutes les demandes envoyées au sous-répertoire / démo1 / ou / démo2 sur le domaine http: //.com pour reculer les applications correspondantes Tomcat comme:

    • Domaine http: //.com / demo1 / >> http: // localhost: 8080 / Demo1 /
    • Domaine http: //.com / demo2 / >> http: // localhost: 8080 / Demo2 /

    Configurer un hôte virtuel comme celui-ci.

    Domaine de nom de serveur.com proxyrequests sur proxyPass / Demo1 http: // localhost: 8080 / demo1 / proxypassreverse / demo1 http: // localhost: 8080 / DEMO1 / proxypass / Demo2 http: // localhost: 8080 / demo2 / proxypassreward / demo2 http: // localhost : 8080 / Demo2 / requis accordé tous les obligatoires accordés tous
    1234567891011121314151617 Domaine de nom de serveur.com proxyrequests sur proxypass / demo1 http: // localhost: 8080 / demo1 / proxypassreverse / demo1 http: // localhost: 8080 / DEMO1 / proxypass / Demo2 http: // localhost: 8080 / demo2 / proxypassrewerfult : 8080 / Demo2 / Requis accordé tous Requis accordé tous

Étape 3: Redémarrez Apache pour appliquer les modifications

Une fois que vous avez créé avec succès Apache Virtual Host, vous devez redémarrer le service Apache. Utilisez les commandes suivantes pour redémarrer le service Apache en fonction du système d'exploitation.

  • Systèmes basés sur Redhat:
    sudo systemctl redémarrer httpd  
  • Systèmes basés sur les débats:
    sudo systemctl redémarrer apache2  

Conclusion

Ce billet de blog vous aide à configurer Apache en tant que serveur proxy inversé sur les systèmes basés sur Debian ou basés sur Debian. Le proxy inversé fait un pont entre le serveur Web face à Internet et l'application Web en cours d'exécution en tant que service backend.