Am configurat un container de baze de date postgres și îl pot conecta și interoga direct folosind portul 5434 publicat.
Scopul este de a implementa baza de date de testare mai târziu și de a o accesa prin reverse proxy nginx.
Nu știu care este cea mai bună modalitate de a vă conecta la o bază de date de testare implementată. Vă rugăm consultaţi.
Am încercat să mă conectez la o bază de date postgres prin reverse proxy nginx folosind containere locale.
Folosind comanda:
psql -h localhost -p 5435 -U postgres test_container_nume_bază de date
Nginx afișează eroare:
reverse-proxy | 29/10/2021 20:06:57 [info] 32#32: *17 client 172.25.0.1:56630 conectat la 0.0.0.0:5435
reverse-proxy | 2021/10/29 20:06:57 [eroare] 32#32: *17 connect() a eșuat (111: Conexiune refuzată) în timpul conectării la amonte, client: 172.25.0.1, server:
0.0.0.0:5435, în amonte: „172.25.0.3:5434”, octeți de la/către client: 0/0, octeți de la/către amonte: 0/0
nginx.conf:
curent {
amonte baza de date_test {
server postgres_test:5434;
}
Server {
asculta 5435 so_keepalive=on;
proxy_pass database_test;
}
}
test_db docker-compose:
Servicii:
postgres_test:
container_name: postgres_test
imagine: postgis/postgis
reporniți: întotdeauna
expune:
- 5432
porturi:
- 5434:5432
volume:
- ./backup:/backup
- ./postgres-init-db.sh:/docker-entrypoint-initdb.d/postgres-init-db.sh
- postgres_test_data:/var/lib/postgresql/data
env_file:
- ./.env.postgres
retele:
- rețea comună
volume:
postgres_test_data:
retele:
rețea comună:
extern:
nume: comună-rețea
reverse-proxy docker-compose:
retele:
common-network: #nume în acest fișier docker-compose
name: common-network # numele real al rețelei
Servicii:
nginx:
imagine: nginx:1.20.1
volume:
- ./nginx.conf:/etc/nginx/nginx.conf:ro
porturi:
- 80:80
- 443:443
- 5435:5435
container_name: reverse-proxy
retele:
- rețea comună
În plus, am verificat fișierele de configurare postgres, par a fi corecte:
cat postgresql.conf | grep listen_addresses
listen_addresses = '*'
cat pg_hba.conf | gazdă grep
găzduiește toate toate toate md5