У меня есть docker рой, работающий 2 python flask служб, каждая из которых работает в своем регионе, скажем, A и B. В области A также запущена Nginx, которая является основной точкой входа для доступа услуги. База данных MongoDB работает в регионе A, за пределами роя docker. Служба python, работающая в регионе A, может подключаться к MongoDB, работающему в регионе A, но служба B не может подключаться к MongoDB из региона B. Мой вопрос: можно ли настроить Nginx для прокси-службы B для подключения к MongoDB? ?
Конфигурация местоположений Nginx для сервисов:
location /a {
proxy_pass https://a-service:5000/; # running in region A
}
location /b {
proxy_pass https://b-service:5001/; # running in region B
}
Где a-service и b-service - это docker имена контейнеров роя.
Я видел сообщения о том, как настроить MongoDB за Nginx, но мой случай обратный - получить доступ к внешней MongoDB изнутри docker роя через Nginx внутри роя.
( Как настроить MongoDB за Nginx Обратный прокси )
Я понимаю, что мне нужно что-то подобное в nginx .conf:
stream {
server {
listen 27020;
proxy_connect_timeout 5s;
proxy_timeout 20s;
proxy_pass mongodb_host;
}
upstream mongodb_host{
server https://5.150.225.25:27017;
}
}
Однако местонахождение хоста mongodb (https://5.150.225.25) - это другой vm вне роя docker, а не локальный IP. Это приводит к ошибке:
nginx: [emerg] invalid host in upstream "https://5.150.225.25:27017" in nginx.conf