Découvrez le MMORPG RaiderZ
Calypso

 tutoriel
Faire communiquer nativement Nginx et Express (NodeJS)

3 messages dans ce sujet

Hello !

 

Aujourd'hui je vous fais un petit tutoriel pour vous apprendre à faire communiquer nativement Nginx et Express.

Qu'est ce que cela veut dire ?

 

 

Prenons un exemple simple:

 

Vous avez un site internet hébergé sur votre VPS utilisant le serveur web Nginx. Vous avez acheté (ou obtenu via Let's Encrypt, etc), un certificat SSL.

Vous avez donc un domaine avec HTTPS.

Mais si maintenant on rajoute quelque chose à tout ça, on lance Express sur le port 8080 par exemple et qu'on vérifie les appels GET dans notre code, si on accède à mondomaine.fr:3000/node/CheminDaccès en https, cela ne fonctionnera pas, logique, le port https est sur le port 443 et là on hit le port 3000. On ne va pas prendre 2 certificats, inutile ..

Dans ce tutoriel, je vais vous expliquer rapidement pour que cette URL revient au même que de faire:

Contenu Masqué

 

Voici un fichier .js basique utilisant Express:

 

 

'use strict';const express = require('express'),var app = express();app.get('/funkyemu/test', function(req, res) {      // Corps de ma fonction suite à un appel GET sur /funkyemu/test});var server = app.listen(process.env.PORT || 8080, function (){  console.log("Express tourne sur le port %s", server.address().port);});

 

 

Voici le code le plus basique.

Vous remarquerez que dans ma fonction app.get (qui permet de vérifier les appels GET), j'ai ajouté un chemin (/funkyemu/ pour accéder à test. Vous comprendrez plus tard pourquoi. En effet, je ne peux pas faire un appel get sur la racine ( / ) car il y a déjà mon site internet dessus et cela risque de poser soucis pour la configuration qui va suivre.

 

Passons maintenant à la configuration du Reverse Proxy sur Nginx. Qu'est ce que c'est qu'un Reverse Proxy ? C'est tout simplement l’inverse d'un proxy !

Brièvement, cela va nous permettre d'accéder à notre URL sans passer par le port tout en gardant notre https ! (Ce qui est parfois utile généralement pour des APP Facebook pour la configuration du Webhook).

 

Il suffit tout simplement de configurer son fichier nginx:

/nginx/sites-enabled/default

 

Voici comment je l'ai configuré:

 

 

       location /funkyemu {               proxy_pass 


	

Contenu Masqué

     }

 

 

C'est tout ce qu'il y a à faire !

Vous remarquerez une nouvelle fois que j'ai ajouté le proxy_pass dans location /funkyemu.

En effet, si je proxy_pass sur la racine /, c'est sûr que mon site Internet à côté de fonctionnera plus, normal ..

 

Donc maintenant en accédant à l'URL

Contenu Masqué

, tout fonctionne !

Vous pouvez rajouter un proxy_pass sur tous les ports que vous souhaitez utiliser, sans problème.

 

Voila !  :clap:

Si vous avez des questions, n'hésitez pas, j'essayerai d'y répondre  :top:

1

Partager ce message


Lien à poster
Partager sur d’autres sites

Modification sur le tutoriel au niveau du ProxyPass, petite erreur. Désolé.

0

Partager ce message


Lien à poster
Partager sur d’autres sites

Hey merci de ton investissement ! :rire:

1

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !


Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.


Connectez-vous maintenant