มีคำแนะนำหรือตัวอย่างที่ดีสำหรับการตั้งค่าเครือข่ายคอมเพล็กซ์ (สาธารณะ/ส่วนตัว) ที่มีนักเทียบท่าหรือไม่?
ต่อจากนี้ไป สมมติว่า:
- ฉันมีการตั้งค่าพร็อกซีย้อนกลับที่ใช้งานได้ซึ่งทำงานในนักเทียบท่า (jwilder/nginx-proxy)
- ฉันมีบริการ Pihole ที่ทำงานในนักเทียบท่า (วางแผนที่จะบังคับใช้ภายใน VPN)
- ฉันมีเซิร์ฟเวอร์ VPN ทำงานในนักเทียบท่า (ไคล์มานนา/openvpn)
- ฉันมีหลายเซิร์ฟเวอร์
สำหรับแต่ละ Service Stack ที่รันใน Docker ที่เริ่มต้นด้วยการเขียน Docker ฉันระบุ 2 เครือข่าย ส่วนหน้าและส่วนหลัง
เครือข่าย:
ส่วนหน้า:
ภายนอก:
ชื่อ: reverse_proxy
แบ็กเอนด์:
ภายนอก:
ชื่อ: vpn
ส่วนหน้าระบุว่าสามารถเข้าถึงได้ผ่านพร็อกซีย้อนกลับ
ส่วนหลังระบุว่าสามารถเข้าถึงได้ผ่าน VPN
เมื่อฉันสร้างบริการในนักเทียบท่า ไม่ว่าจะอยู่บนเซิร์ฟเวอร์ใด ฉันต้องการให้เข้าถึงบริการแบ็คเอนด์ได้แม้ว่าจะใช้ VPN เดียวกันก็ตาม
ตัวอย่างเช่น ถ้าฉันเปิดตัว:
บริการ:
ฐานข้อมูล:
รูป: mysql:5.7
ชื่อคอนเทนเนอร์: db.service1.example.com
บริการ 1:
ขึ้นอยู่กับ:
- ฐานข้อมูล
ภาพ:เวิร์ดเพรส
ชื่อคอนเทนเนอร์: service1.example.com
สิ่งแวดล้อม:
- VIRTUAL_HOST=service1.example.com
- LETSENCRYPT_HOST=service1.example.com
- VIRTUAL_PORT=80
เครือข่าย:
- แบ็กเอนด์
- ส่วนหน้า
บริการผู้ดูแลระบบ:
ภาพ: phpmyadmin/phpmyadmin
ชื่อคอนเทนเนอร์: admin.service1.example.com
สิ่งแวดล้อม:
- VIRTUAL_HOST=admin.service1.example.com
- LETSENCRYPT_HOST=admin.service1.example.com
- VIRTUAL_PORT=80
เครือข่าย:
- แบ็กเอนด์
เครือข่าย:
ส่วนหน้า:
ภายนอก:
ชื่อ: reverse_proxy
แบ็กเอนด์:
ภายนอก:
ชื่อ: vpn
(โปรดสังเกตโค้ดด้านบน ไม่มีข้อมูลที่เกี่ยวข้องกับการตั้งค่าที่เหมาะสมของอินสแตนซ์ mysql และจะใช้งานไม่ได้ นี่เป็นเพียงตัวอย่างเท่านั้น)
เพื่อที่จะทำในสิ่งที่ฉันต้องการ ฉันสมมติว่าฉันต้องการคอนเทนเนอร์ไคลเอนต์ VPN ที่เชื่อมต่อกับคอนเทนเนอร์เซิร์ฟเวอร์ VPN (หากอยู่บนเซิร์ฟเวอร์เดียวกันกับคอนเทนเนอร์เซิร์ฟเวอร์ VPN) และ Reverse proxy ที่สองเพื่อจัดการ Routing?
ฉันไม่แน่ใจทั้งหมด ฉันยังไม่แน่ใจด้วยว่าแทนที่จะใช้การเชื่อมต่อระหว่างไคลเอ็นต์กับเซิร์ฟเวอร์ใน VPN ฉันต้องการการเชื่อมต่อระหว่างเซิร์ฟเวอร์กับเซิร์ฟเวอร์ ซึ่งฉันไม่แน่ใจด้วยซ้ำว่าถูกต้อง/เป็นไปได้
เป้าหมายสุดท้ายคือการมี http://service1.example.com มองเห็นได้ทางอินเทอร์เน็ตที่เปิดอยู่
และมี http://admin.service1.example.com 404 เว้นแต่คุณจะเชื่อมต่อกับ VPN
ฉันอยู่ในเส้นทางที่ถูกต้องหรือไม่?
จากที่เห็นในการเข้าถึงบริการในนักเทียบท่าผ่าน VPNฉันสามารถกำหนดเส้นทางบริการทั้งหมดและพอร์ตทั้งหมดผ่าน VPN เท่านั้น หรือ มีพอร์ตที่ระบุไว้ใน VPN เอง ซึ่งกำหนดเส้นทางทราฟฟิกของคอนเทนเนอร์ผ่าน VPN แต่การเข้าถึงไม่ได้จำกัดเฉพาะ VPN