Tôi đã thiết lập một bộ chứa cơ sở dữ liệu postgres và có thể kết nối cũng như truy vấn nó trực tiếp bằng cổng 5434 đã xuất bản.
Mục đích là để triển khai cơ sở dữ liệu thử nghiệm sau này và truy cập nó thông qua proxy ngược nginx.
Tôi không biết cách tốt nhất để kết nối với cơ sở dữ liệu thử nghiệm đã triển khai là gì. Xin tư vấn.
Tôi đã cố gắng kết nối với cơ sở dữ liệu postgres thông qua proxy ngược nginx bằng các vùng chứa cục bộ.
Sử dụng lệnh:
psql -h localhost -p 5435 -U cơ sở dữ liệu postgres_name_container_test
Nginx hiển thị lỗi:
proxy ngược | 29/10/2021 20:06:57 [thông tin] 32#32: *17 máy khách 172.25.0.1:56630 được kết nối với 0.0.0.0:5435
proxy ngược | 29/10/2021 20:06:57 [lỗi] 32#32: *17 connect() fail (111: Kết nối bị từ chối) trong khi kết nối với thượng nguồn, máy khách: 172.25.0.1, máy chủ:
0.0.0.0:5435, ngược dòng: "172.25.0.3:5434", byte từ/đến máy khách: 0/0, byte từ/đến ngược dòng: 0/0
nginx.conf:
dòng {
cơ sở dữ liệu ngược dòng_test {
máy chủ postgres_test:5434;
}
người phục vụ {
nghe 5435 so_keepalive=on;
cơ sở dữ liệu proxy_pass_test;
}
}
test_db docker-soạn thảo:
dịch vụ:
postgres_test:
container_name: postgres_test
hình ảnh: postgis/postgis
khởi động lại: luôn luôn
lộ ra:
- 5432
cổng:
- 5434:5432
khối lượng:
- ./sao lưu:/sao lưu
- ./postgres-init-db.sh:/docker-entrypoint-initdb.d/postgres-init-db.sh
- postgres_test_data:/var/lib/postgresql/data
env_file:
- ./.env.postgres
mạng:
- mạng chung
khối lượng:
postgres_test_data:
mạng:
mạng chung:
bên ngoài:
tên: mạng chung
proxy ngược docker-compose:
mạng:
mạng chung: #name trong tệp docker-compose này
name: common-network # tên thật của mạng
dịch vụ:
nginx:
hình ảnh: nginx:1.20.1
khối lượng:
- ./nginx.conf:/etc/nginx/nginx.conf:ro
cổng:
- 80:80
- 443:443
- 5435:5435
container_name: proxy ngược
mạng:
- mạng chung
Ngoài ra, tôi đã kiểm tra các tệp cấu hình postgres, chúng có vẻ đúng:
mèo postgresql.conf | grep listen_addresses
nghe_addresses = '*'
con mèo pg_hba.conf | máy chủ grep
lưu trữ tất cả tất cả tất cả md5