Добрый день! Суть вопроса такова, есть стандартный клиент и сервер, сервер на nodejs проксируется через nginx по стандартному конфигу:
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
# ...
location /api {
proxy_pass http://localhost:3000;
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;
}
}
Недавно появилась задача задублировать приложение которые будут брать данные из разных бд, клиент можно просто скопировать в две папки и отдавать поддоменами а вот с сервером ситуация непонятная, варианта тут два:
1) Выбирать необходимую бд в запросе проверяя от кого пришел запрос, но сложность в том что тогда нужно в каждом запросе осуществлять подключение и соответственно отключение
2) Задублировать сервер и через nginx каким то способом проксировать запрос на нужный порт в зависимости от какого под домена пришел запрос
3) Тоже самое что и во 2 пункте только сделать 2 записи проксирования в конфиге и убрать и проксированного запроса часть с уточнением для кого запрос
Не знаю как грамотно это реализовать, в голове крутится такой псевдокод
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
# ...
location /api/sub1 {
# Убрать sub1, что бы запрос шел на http://localhost:2000/api
proxy_pass http://localhost:2000;
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;
}
location /api/sub2 {
# Убрать sub2, что бы запрос шел на http://localhost:3000/api
proxy_pass http://localhost:3000;
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;
}
}
Если нужны какие то уточнения пишите, заранее благодарю