ฉันกำลังพยายามแก้ปัญหาที่ดูเหมือนจะง่าย แต่ไม่พบสถาปัตยกรรมที่สะอาด
ปัญหา: ฉันมีไคลเอนต์ที่พยายามเข้าถึงกราฟานาในเครือข่ายท้องถิ่น
|เราเตอร์|------|ไคลเอนต์
| |
|------|กราฟาน่า
เมื่อคุณอยู่หลังเราเตอร์ (และไฟร์วอลล์ด้วย) คุณจะสามารถเข้าถึงกราฟานาและใช้งานได้อย่างง่ายดาย ฉันต้องการสิ่งเดียวกันที่เกิดขึ้นเมื่ออยู่นอกเครือข่ายท้องถิ่น
ลูกค้า|------|เราเตอร์|------|Grafana
ทางออกที่ง่าย:
วิธีแก้ไขเบื้องต้นคือการส่งต่อพอร์ตและเพียงแค่เปิดพอร์ต X บนเราเตอร์ ฉันไม่ต้องการวิธีแก้ปัญหานี้เพราะฉันไม่สามารถเปิดพอร์ตได้ (ด้วยเหตุผลอื่นที่ไม่เกี่ยวข้องกัน)
ไอเดียที่ดีกว่า ฉันกำลังคิดที่จะตั้งค่าสถาปัตยกรรมต่อไปนี้เมื่อเปิดตัวเซิร์ฟเวอร์ใหม่
ลูกค้า|------|เซิร์ฟเวอร์|-------|เราเตอร์|-------|Grafana
แนวคิดคือเซิร์ฟเวอร์จะรักษาการเชื่อมต่อกับ Grafana สิ่งนี้จะป้องกันการส่งต่อพอร์ตใด ๆ เนื่องจากเซิร์ฟเวอร์ grafana กำลังทำการย้ายครั้งแรก
จากนั้นหากไคลเอนต์ต้องการเข้าถึง Grafana ก็จะเข้าถึงเซิร์ฟเวอร์ที่จะเปลี่ยนเส้นทางไปยัง Grafana
หลังจากการโทรครั้งแรก ฉันต้องการให้ลูกค้าสร้างการเชื่อมต่อโดยตรงกับ grafana โดยไม่ต้องผ่านเซิร์ฟเวอร์
นอกจากนี้ grafana ยังเป็นตัวอย่าง/tuto โซลูชันอื่นๆ ที่มีการสื่อสารแบบ http ก็ใช้ได้
คำถาม:
- เป็นไปได้ไหม ?
- ดูเหมือนว่ามีเครื่องมือ (CND, reverse proxy) แต่ไม่ตรงกับความต้องการของฉัน หรือบางทีฉันแค่ไม่รู้ว่าจะใช้มันอย่างไร ?
- เครื่องมือใดที่จะใช้บนเซิร์ฟเวอร์ A และ B (websocket, socket.io, Nginx, Apache ... ) ทั้งสองเซิร์ฟเวอร์ใช้ลินุกซ์
ขอบคุณ !