1 votes

Comment joindre plusieurs intances node.js à un seul domaine ?

J'ai sur la même IP plusieurs instances node.js. Chaque instance fonctionne sur un domaine différent via nginx proxy inverse.

Par exemple :

map_hash_bucket_size 128;

map $host $backend_servers {
  hostnames;
  default       127.0.0.1:3000;

  example.com   127.0.0.1:3001;
  example.net   127.0.0.1:3002;
  example.org   127.0.0.1:3003;
}

server {
    listen 1.2.3.4:80 default_server;
    server_name  _;

    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $host;
        proxy_set_header X-NginX-Proxy true;

        proxy_pass http://$backend_servers; # upstream here
        proxy_redirect off;
    }
}

Je veux diriger tout le trafic de example.com avec le préfixe du chemin /foo a 127.0.0.1:3002 et retirer example.net du serveur.

Anciens liens vers example.net/bar devrait être redirigé avec le statut 301 Moved Permanently a example.com/foo/bar .

C'est mon objectif final :

example.com      >> 127.0.0.1:3001
example.com/foo  >> 127.0.0.1:3002
example.net      >> example.com/foo  # 301 redirect
example.org      >> 127.0.0.1:3003   # no change

Des suggestions ?

3voto

Delta7 Points 13

Vous pouvez modifier la configuration du serveur proxy nginx comme suit :

server {
    server_name example.com;
    listen 80;
    location / {
        proxy_pass http://127.0.0.1:3001;
                }
    location /foo {
        proxy_pass http://127.0.0.1:3002;
    }
} 
server {
    server_name example.org;
    listen 80;
    location / {
        proxy_pass http://127.0.0.1:3003;
    }
}
server {
    server_name example.net;
    listen 80;
    return 301 http://example.com/foo;
}

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X