GNU/Linux >> Tutoriels Linux >  >> Linux

Comment configurer Apache en tant que proxy frontal pour Node.js

Apache est le serveur Web le plus populaire. Vous pouvez également utiliser Apache comme serveur proxy frontal pour les applications d'arrière-plan telles que Node.js. Ce didacticiel vous aidera à configurer votre serveur Apache en tant que serveur proxy frontal pour votre application Node.js en quelques étapes simples.

Avant de commencer

  • J'utilise l'instance Ubuntu 18.04 hébergée sur DigitalOcean.
  • Installation de la dernière version de Node.js à l'aide de ce didacticiel sur cette machine Linux.

Étape 1 – Créer un exemple d'application de nœud

Comme vous êtes ici 🙂 Vous devez avoir une application Node.js en cours d'exécution sur un port. Nous supposons que vous exécutez votre application sur le port 3000. À des fins de démonstration, je crée un exemple d'application Web sur Node.js et je l'exécute sur le port 3000. Cela vous sera donc plus facile à comprendre.

nano myapp.js 

Ensuite, ajoutez le contenu suivant dans le fichier JavaScript.

var http = require('http');

http.createServer(function (req, res) {
    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.end('Hello World');
}).listen(3000, "127.0.0.1");
console.log('Server running at http://127.0.0.1:3000/');

Votre application Node est prête à servir sur le port 3000. Démarrons l'application Node.js en arrière-plan.

node myapp.js & 

Et accédez-y dans le navigateur. Vous verrez le résultat comme ci-dessous :

Étape 2 - Installer le serveur Apache

Installez maintenant le serveur Web Apache à l'aide du gestionnaire de packages par défaut. Les systèmes basés sur Ubuntu et Debian utilisent apt, Fedora et CentOS/RHEL 8 utilisent DNF et CentOS/RHEL 7/6 utilisent yum. Les packages Apache sont disponibles dans les référentiels par défaut sur presque tous les systèmes d'exploitation.

sudo apt install apache2   ### Debians based systems 
sudo dnf install httpd     ### Fedora & CentOS 8 

Après l'installation du serveur web Apache, vous devez avoir activé le module Proxy. Ce module est activé dans Apache pour les utilisateurs qui ont installé à l'aide de packages rpm. Si vous n'avez pas activé la modification de votre configuration Apache /etc/httpd/conf/httpd.conf ou pour Apache 2.4 /etc/httpd/conf.modules.d/00-proxy.conf fichier et décommentez les lignes suivantes ou mettez-les dans le fichier.

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so

Pour les systèmes basés sur Debian, utilisez la commande suivante pour activer le module Proxy avec Apache.

sudo a2enmod proxy proxy_http 

Étape 3 - Configurer Apache VirtualHost

Comme vous avez configuré et exécuté un serveur de démonstration Node.js. Maintenant, démarrez la configuration avec le serveur Web Apache. Créez un fichier de configuration d'hôte virtuel pour votre domaine sous /etc/apache2/sites-available/ répertoire.

### Debian based system's 
sudo nano /etc/apache2/sites-available/example.com.conf 

### Redhat based system's 
sudo vim /etc/httpd/conf.d/example.com.conf 

et ajoutez le contenu suivant.

Apache
1234567 ServerName example.com ProxyPreserveHost On ProxyPass / http://localhost:3000/ ProxyPassReverse / http://localhost:3000/

Après avoir créé la configuration, redémarrez le serveur Web Apache à l'aide de la commande suivante.

### Debian based system's 
sudo a2ensite example.com 
sudo systemctl restart apache2 

### Redhat based system's 
sudo systemctl restart httpd 

Étape 5 – Vérifier la configuration

Accédez maintenant à votre serveur en utilisant le nom de domaine, vous verrez la même page s'afficher sur http://127.0.0.1:3000/ .

Conclusion

Vous avez fait la configuration du proxy Apache pour backend l'application Node.js. Alternativement, Nginx a de meilleures performances en tant que serveur proxy, donc si vous n'êtes pas lié à Apache, optez pour le serveur proxy Nginx.


Linux
  1. Comment installer Node.js sur Debian 10 et configurer Nginx en tant que serveur proxy frontal

  2. Comment configurer Nginx en tant que serveur Web et proxy inverse pour Apache sur CentOS 8

  3. Comment configurer Nginx en tant que proxy inverse pour Apache sur Debian 11

  4. Configurer Apache Traffic Server en tant que proxy inverse sous Linux

  5. Comment configurer un serveur proxy squid sur CentOS/RHEL 7

Comment configurer Apache en tant que serveur proxy frontal pour Node.js CentOS 8

Comment configurer HAProxy sur CentOS 8

Comment configurer le cache Nginx sur un serveur LAMP

Comment installer NGINX en tant que proxy inverse pour Apache sur Ubuntu 18.04

Comment configurer un serveur NGINX RTMP pour le streaming

Comment configurer Nginx comme équilibreur de charge pour Apache ou Tomcat pour HTTP/HTTPS