Размещение двух приложений 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;
}
}