Я настроил контейнер базы данных postgres и могу подключаться и запрашивать его напрямую, используя опубликованный порт 5434.
Цель состоит в том, чтобы позже развернуть тестовую базу данных и получить к ней доступ через обратный прокси-сервер nginx.
Я не знаю, как лучше всего подключиться к развернутой тестовой базе данных. Пожалуйста, порекомендуйте.
Я попытался подключиться к базе данных postgres через обратный прокси-сервер nginx, используя локальные контейнеры.
Используя команду:
psql -h localhost -p 5435 -U postgres имя_базы_данных_контейнер_тест
Nginx показывает ошибку:
обратный прокси | 2021/10/29 20:06:57 [информация] 32#32: *17 клиент 172.25.0.1:56630 подключен к 0.0.0.0:5435
обратный прокси | 2021/10/29 20:06:57 [ошибка] 32#32: *17 connect() не удалось (111: соединение отклонено) при подключении к восходящему каналу, клиент: 172.25.0.1, сервер:
0.0.0.0:5435, восходящий: "172.25.0.3:5434", байты от/к клиенту: 0/0, байты от/к восходящему: 0/0
nginx.conf:
транслировать {
восходящая база данных_тест {
сервер postgres_test:5434;
}
сервер {
слушать 5435 so_keepalive=on;
прокси_проход база данных_тест;
}
}
docker-compose test_db:
Сервисы:
postgres_test:
имя_контейнера: postgres_test
изображение: постгис/постгис
перезапуск: всегда
разоблачать:
- 5432
порты:
- 5434:5432
тома:
- ./резервная копия:/резервная копия
- ./postgres-init-db.sh:/docker-entrypoint-initdb.d/postgres-init-db.sh
- postgres_test_data:/var/lib/postgresql/данные
env_file:
- ./.env.postgres
сети:
- общая сеть
тома:
postgres_test_data:
сети:
общая сеть:
внешний:
имя: общая сеть
обратный прокси-докер-композитор:
сети:
common-network: #имя в этом файле docker-compose
name: common-network # фактическое имя сети
Сервисы:
нгинкс:
изображение: nginx:1.20.1
тома:
- ./nginx.conf:/etc/nginx/nginx.conf:ro
порты:
- 80:80
- 443:443
- 5435:5435
container_name: обратный прокси
сети:
- общая сеть
Кроме того, я проверил файлы конфигурации postgres, они кажутся правильными:
кот postgresql.conf | grep listen_addresses
listen_addresses = '*'
кошка pg_hba.conf | хост grep
хост все все все md5