Рейтинг:0

Подключитесь к базе данных postgres за обратным прокси-сервером nginx, используя контейнеры докеров

флаг de

Я настроил контейнер базы данных 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

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.