Подключение к Mongo Atlas в приложении, проксируемом nginx, mongo выбрасывает отказ в подключении localhost:27020, но я подключаюсь к mongo atlas
Итак, у меня есть приложение Django, обслуживаемое Nginx с помощью docker-compose.
Мы пытаемся подключиться к Mongo Atlas для запросов к базе данных. Локально, когда я запускаю приложение, используя стандартные python manage.py runserver
, я могу запросить БД Mongo Atlas, но когда я запускаю приложение через docker-compose, я получаю localhost:27020 : connection refused
от Mongo Atlas.
Мой файл docker compose выглядит следующим образом.
version: "3"
services:
eve_backend:
build: .
container_name: eve_backend
volumes:
- ./:/app/
- /mnt/efs:/mnt/efs
- static_files:/static
ports:
- 8000:8000
network_mode: "host"
nginx:
build: ./nginx
ports:
- 8088:80
volumes:
- static_files:/home/app/staticfiles
depends_on:
- eve_backend
network_mode: "host"
volumes:
static_files:
файл default.conf для nginx выглядит как
upstream eve {
server localhost:8000;
}
server {
listen 80;
location / {
proxy_pass http://eve;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
}
location /static/ {
alias /home/app/staticfiles/;
}
}
.env файл выглядит как
MONGO_CONN_URL=mongodb+srv://<username>:<password>@<mongo-atlas-url>
код выглядит как
conn_string = config("MONGO_CONN_URL")
with MongoClient(conn_string) as client:
pass
Ошибка, возникающая при этом, выглядит как
localhost:27020: [Errno 111] Connection refused, Timeout: 10.0s, Topology Description: <TopologyDescription id: 63076946ab91f51af1bed06a, topology_type: Unknown, servers: [<ServerDescription ('localhost', 27020) server_type: Unknown, rtt: None, error=AutoReconnect('localhost:27020: [Errno 111] Connection refused')>]>