Vous avez développé une application Node et vous voulez l’héberger dans le serveur du client qui utilise Apache ? Petit bémol ! Votre avez remarqué que votre application se lance sous le port 3000 car le 80 est déjà pris par Apache? La solution se base sur le principe du proxy.
Tout d’abord, il faut installer les deux modules mod_proxy et mod_proxy_http
a2enmod proxy a2enmod proxy_http
Maintenant que les modules sont installés, on devra configurer le serveur Apache pour notre application NodeJS qui tourne au port 8080.
<VirtualHost *:80> ServerAdmin webmaster@localhost ServerName monsite ServerAlias www.monsite.com DocumentRoot /var/www/html/mondossier <Directory /> Options -Indexes +FollowSymLinks AllowOverride None Require all granted </Directory> ProxyRequests Off ProxyPreserveHost On ProxyVia Full <Proxy *> Require all granted </Proxy> <Location /dossierNode> ProxyPass http://127.0.0.1:8080 ProxyPassReverse http://1127.0.0.1:8080 </Location> ErrorLog ${APACHE_LOG_DIR}/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
Cette configuration est valide pour les types d’application web et non seulement avec Node JS. Par exemple, on peut configurer notre serveur pour héberger une application Ruby On Rails qui tournera sur le port 5000.