ฉันมี โหนด JS ใบสมัครด้วย express.js เป็นเฟรมเวิร์กส่วนหลังที่ปรับใช้บนคลาวด์โดยใช้ Kubernetes K8s ทำงานบนเทมเพลต Ubuntu แอปพลิเคชันที่ใช้งานใน Kubernetes เป็นของ บริการ พิมพ์ โหนดพอร์ต. ซึ่งหมายความว่าแอปใช้ที่อยู่ IP ภายนอกของโหนด K8s ในกรณีของฉัน ขณะนี้กำลังใช้ที่อยู่ IP ภายนอกของหนึ่งในโหนดหลัก
จากนั้นฉันกำหนดชื่อโฮสต์ DNS สำหรับแอปพลิเคชันโดยใช้ Cloudflare Tunnel (หรือที่เรียกว่า Argo Tunnel) มันทำงานได้ดีอย่างสมบูรณ์เพราะฉันสามารถเข้าถึงแอปพลิเคชันจากภายนอกคลัสเตอร์ K8s ด้วยชื่อโฮสต์ DNS ที่แก้ไขแล้ว อย่างไรก็ตาม ฉันยังสามารถเข้าถึงแอปพลิเคชันได้โดยตรงจาก a.b.c.d: 31130.
นี่คือตัวอย่างจาก config.yml ไฟล์ที่ใช้ในการสร้างอุโมงค์ Cloudflare:
อุโมงค์: ***********8ab68bscjbi9cddhujhdhbh
ไฟล์ข้อมูลประจำตัว: /home/sebastian/.cloudflared/***********8ab68bscjbi9cddhujhdhbh.json
ทางเข้า:
- ชื่อโฮสต์: myapp.test.io
บริการ: http://a.b.c.d:31130
- บริการ: http_status:404
ข้อกังวลของฉันคือ จะปฏิเสธหรือบล็อกการเข้าถึง IP โดยตรงไปยังแอปพลิเคชันได้อย่างไร เนื่องจากฉันไม่ต้องการเปิดเผยที่อยู่ IP และทำให้ชีวิตลำบากสำหรับตัวเองจากมุมมองด้านความปลอดภัย
ฉันต้องกำหนดค่าจากภายในคลัสเตอร์ Cloudflare หรือ K8s หรือไม่ก็เป็นข้อสงสัยของฉันเช่นกัน การตอบรับและข้อเสนอแนะใด ๆ ที่จะได้รับการชื่นชม