Размещение двух приложений Node.JS в одном домене

У меня есть два приложения js узла, которые я запускаю на одном компьютере, и я хотел бы, чтобы оно запускало приложение js первого узла для всей маршрутизации, за исключением случаев, когда URL-адрес www.domain.com/blog переходил в приложение js другого узла. Это даже возможно с этой настройкой или мне нужно настроить поддоменов и использовать Nginx или что-то?

1 ответ

Решение

Вы можете добиться этого, используя nginx в качестве обратного прокси.

Предполагая, что ваш процесс узла блога работает на порте 3000, а другой процесс узла на 3001, простая конфигурация будет выглядеть так;

upstream blog {
   server 127.0.0.1:3000;
}


upstream other {
   server 127.0.0.1:3001;
}


server {
    listen 80;
    server_name www.domain.com;

    location /blog  {
        proxy_pass          http://blog;
        proxy_http_version  1.1;
        proxy_set_header    Host                $http_host;
        proxy_set_header    Upgrade             $http_upgrade;
        proxy_set_header    Connection          "Upgrade";
        proxy_set_header    X-Real-IP           $proxy_protocol_addr;
        proxy_set_header    X-Forwarded-For     $proxy_add_x_forwarded_for;
        proxy_set_header    X-Forwarded-Proto   tcp;
        proxy_set_header    X-NginX-Proxy       true;
    }

    location / {
        proxy_pass          http://other;
        proxy_http_version  1.1;
        proxy_set_header    Host                $http_host;
        proxy_set_header    Upgrade             $http_upgrade;
        proxy_set_header    Connection          "Upgrade";
        proxy_set_header    X-Real-IP           $proxy_protocol_addr;
        proxy_set_header    X-Forwarded-For     $proxy_add_x_forwarded_for;
        proxy_set_header    X-Forwarded-Proto   tcp;
        proxy_set_header    X-NginX-Proxy       true;
    }
  }
Другие вопросы по тегам