ฉันได้ตั้งค่าคอนเทนเนอร์ฐานข้อมูล postgres แล้วและสามารถเชื่อมต่อและสอบถามโดยตรงโดยใช้พอร์ต 5434 ที่เผยแพร่
เป้าหมายคือการปรับใช้ฐานข้อมูลทดสอบในภายหลังและเข้าถึงผ่าน nginx reverse proxy
ฉันไม่รู้ว่าวิธีใดดีที่สุดในการเชื่อมต่อกับฐานข้อมูลทดสอบที่ปรับใช้ กรุณาแนะนำ.
ฉันพยายามเชื่อมต่อกับฐานข้อมูล postgres ผ่าน nginx reverse proxy โดยใช้คอนเทนเนอร์ในเครื่อง
ใช้คำสั่ง:
psql -h localhost -p 5435 -U postgres database_name_container_test
Nginx แสดงข้อผิดพลาด:
พร็อกซีย้อนกลับ | 29/10/2021 20:06:57 [ข้อมูล] 32#32: *17 ไคลเอนต์ 172.25.0.1:56630 เชื่อมต่อกับ 0.0.0.0:5435
พร็อกซีย้อนกลับ | 29/10/2021 20:06:57 [ข้อผิดพลาด] 32#32: *17 การเชื่อมต่อ() ล้มเหลว (111: การเชื่อมต่อถูกปฏิเสธ) ขณะเชื่อมต่อกับอัปสตรีม ไคลเอนต์: 172.25.0.1 เซิร์ฟเวอร์:
0.0.0.0:5435, อัปสตรีม: "172.25.0.3:5434", ไบต์จาก/ถึงไคลเอ็นต์:0/0, ไบต์จาก/ถึงอัปสตรีม:0/0
nginx.conf:
ลำธาร {
ฐานข้อมูลต้นน้ำ_test {
เซิร์ฟเวอร์ postgres_test:5434;
}
เซิร์ฟเวอร์ {
ฟัง 5435 so_keepalive=เปิด;
proxy_pass ฐานข้อมูล_test;
}
}
test_db นักเทียบท่าเขียน:
บริการ:
postgres_test:
ชื่อคอนเทนเนอร์: postgres_test
ภาพ: postgis/postgis
รีสตาร์ท: เสมอ
เปิดเผย:
- 5432
พอร์ต:
- 5434:5432
ปริมาณ:
- ./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
เครือข่าย:
- เครือข่ายทั่วไป
ปริมาณ:
postgres_test_data:
เครือข่าย:
เครือข่ายทั่วไป:
ภายนอก:
ชื่อ: เครือข่ายทั่วไป
reverse-proxy docker-compose:
เครือข่าย:
เครือข่ายทั่วไป: #name ในไฟล์ docker-compose นี้
ชื่อ: เครือข่ายทั่วไป # ชื่อจริงของเครือข่าย
บริการ:
จิงซ์:
รูปภาพ: 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
ฟัง_ที่อยู่ = '*'
แมว pg_hba.conf | โฮสต์ grep
โฮสต์ md5 ทั้งหมดทั้งหมด