Configuration avec serveurs NodeJS

Bonjour,

J'ai actuellement un problème de DNS que je ne sais résoudre car ma connaissance dans ce domaine est relativement flou.

Mon problème est le suivant:
- J'ai 3 serveurs NodeJS qui tourne actuellement sur un serveur physique:
Exemple ->
-> 1.2.3.4:433 qui est un serveur que je veux atteindre avec "https://xy.greencolor.com"

-> 1.2.3.4:8080 qui est un serveur que je veux atteindre avec "http://xx.bluecolor.com"

-> 1.2.3.4:3000 qui est un serveur que je veux atteindre avec "http://yy.bluecolor.com"

-> Pour mes noms de domaine:
chez 1&1 j'ai configurer mon dns sur xx.greencolor.com vers 1.2.3.4
et chez Amen un dns sur xx.bluecolor.com vers 1.2.3.4 et aussi yy.bluecolor.com vers 1.2.3.4

J'essaye de paramétrer avec nginx mais je ne suis pas sure que ce soit la bonne solution. Mais pour le moment si je fais:
https//xy.nameserver.com ca m'envoi bien sur le bon serveur mais par contre si j'essaye sur du http, http//xy.nameserver.com ca m'envoi sur le serveur en port 8080. Et je ne veux pas.

Dois-je passer par nginx et si oui comment configurer précisement?

Merci d'avance.

4 réponses

  • Votes
  • Date
  • Date décroissante
  1. Bonjour,

    Dans le dossier /etc/nginx/sites-available tu dois avoir 3 fichiers (avec l'extension .conf) correspondant au 3 sous-domaines, chaque fichier doit commencer comme ça :

    1. Il y a juste à modifier "server_name"

      Il faut penser à supprimer le fichier .conf qui s'appelle defaut.
  2. J'ai un fichier "default" qui contient ca:

    server {
    Listen 80;
    server_name xx.bluecolor.com;

    location / {
    proxy_pass proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
    }
    }

    server {
    Listen 80;
    server_name xy.bluecolor.com;

    location / {
    proxy_pass proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
    }
    }

    coup, il faut que je décompose? default1, default2, default3 ??
    1. Oui il faut décomposer, tu fais 3 fichiers :

      - xy.conf
      - xx.conf
      - yy.conf

      Une fois les fichiers correctement paramétrés, dans le dossier /etc/nginx/sites-enabled tu crées un lien symbolique pour chaque fichier .conf

      Ne pas oublier de supprimer default.conf et de redémarrer nginx.
      1. Ok, juste un truc les fichiers de conf je dois les créer dans sites-avaibled ou enabled ? et le lien symbolique je le fais vers quoi?

        Et un exemple de xx.conf
        server {
        Listen 80;
        Listen 443;
        server_name xx.bluecolor.com;

        location / {
        proxy_pass 1.2.3.4:443
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
        }
        }
        ?
      2. Les fichiers de conf dans /etc/nginx/sites-available

        Les liens symboliques dans /etc/nginx/sites-enabled
      3. Un lien qui pointe vers /etc/nginx/sites-available/xy.conf

        Un lien qui pointe vers /etc/nginx/sites-available/xx.conf

        Un lien qui pointe vers /etc/nginx/sites-available/yy.conf
      4. Il sert à quoi ton proxy_pass ?
      5. A rediriger sur mon serveur nodejs. Normalement.
    2. C'est bon j'ai réussi :D
      Ce fut compliqué mais c'est bon !

      ssl.conf :
      server {
      listen 0.0.0.0:80;
      server_name ssl.greencolor.fr greencolor;
      access_log /var/log/nginx/green.log;

      # pass the request to the node.js server with the correct headers
      # and much more can be added, see nginx config options
      location / {
      rewrite ^(.*) https://ssl.greencolor.fr$1 permanent;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Host $http_host;
      proxy_set_header X-NginX-Proxy true;

      proxy_pass https://1.2.3.4:443/;_ proxy_redirect off;
      }
      }

      nonssl2.conf:
      server {
      listen 0.0.0.0:80;
      server_name nonssl_2.bluecolor.fr bluecolor;
      access_log /var/log/nginx/blue2.log;

      # pass the request to the node.js server with the correct headers
      # and much more can be added, see nginx config options
      location / {
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Host $http_host;
      proxy_set_header X-NginX-Proxy true;

      proxy_pass https://1.2.3.4:3000/;_ proxy_redirect off;
      }
      }

      nonssl1.conf:
      server {
      listen 0.0.0.0:80;
      server_name nonssl_1.bluecolor.fr bluecolor;
      access_log /var/log/nginx/blue1.log;

      # pass the request to the node.js server with the correct headers
      # and much more can be added, see nginx config options
      location / {
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Host $http_host;
      proxy_set_header X-NginX-Proxy true;

      proxy_pass https://1.2.3.4:8080/;_ proxy_redirect off;
      }
      }

      Merci encore. Bonne soirée.
      1. Oui ça peut être intéressant si quelqu'un a le même problème.