Для запуска двух или более приложений в одной папке домена вам потребуется использовать проксирование запросов или обратный прокси-сервер c помощью Node.js.
Проксирование запросов позволяет передавать входящие запросы от клиента к различным серверам в зависимости от соответствующих путей или доменных имен. Это позволяет вам объединить все приложения в единое пространство и управлять ими централизованно.
Ниже приведен пример использования проксирования запросов с помощью модуля express и http-proxy-middleware.
1. Установите необходимые пакеты:
npm install express http-proxy-middleware --save
2. Создайте файл server.js
с следующим содержимым:
const express = require('express'); const { createProxyMiddleware } = require('http-proxy-middleware'); const app = express(); // Проксируем запросы к первому приложению app.use('/app1', createProxyMiddleware({ target: 'http://localhost:3001', changeOrigin: true })); // Проксируем запросы ко второму приложению app.use('/app2', createProxyMiddleware({ target: 'http://localhost:3002', changeOrigin: true })); // Запускаем сервер app.listen(3000, () => { console.log('Сервер запущен на порту 3000'); });
В этом примере мы создаем экземпляр приложения express и настраиваем проксирование запросов с помощью модуля http-proxy-middleware. Прокси для каждого приложения настраивается с использованием метода createProxyMiddleware
, где target
указывает URL приложения, а changeOrigin
позволяет изменять заголовок host
для корректного маршрутизации запросов.
3. Создайте два отдельных файла app1.js
и app2.js
в корне вашей папке домена, в которых можно разместить код ваших приложений. Например, app1.js
может содержать следующий код:
const express = require('express'); const app = express(); // Маршрутизация и логика вашего первого приложения app.get('/', (req, res) => { res.send('Привет из первого приложения!'); }); app.listen(3001, () => { console.log('Первое приложение запущено на порту 3001'); });
А app2.js
:
const express = require('express'); const app = express(); // Маршрутизация и логика вашего второго приложения app.get('/', (req, res) => { res.send('Привет из второго приложения!'); }); app.listen(3002, () => { console.log('Второе приложение запущено на порту 3002'); });
Обратите внимание, что каждое приложение запускается на отдельном порту - 3001 и 3002 соответственно.
4. Запустите прокси-сервер, выполнив команду:
node server.js
5. Теперь вы можете обращаться к вашим приложениям, добавляя соответствующий путь в URL. Например, чтобы получить доступ к первому приложению, вы можете перейти по адресу http://localhost:3000/app1
, а ко второму - http://localhost:3000/app2
.
Таким образом, вы создали прокси-сервер, который проксирует запросы от клиента к двум или более приложениям в одной папке домена с помощью Node.js.