ฉันจะโฮสต์เว็บฟิสิคัลเซิร์ฟเวอร์หลายหลังที่อยู่ IP เดียวได้อย่างไร


14

ฉันใช้งานเว็บเซิร์ฟเวอร์หลายเครื่องในบ้านของฉันซึ่งแต่ละอันเชื่อมต่อกับเราเตอร์ของฉัน

เซิร์ฟเวอร์ A เซิร์ฟเวอร์ B เซิร์ฟเวอร์ C

ขณะนี้ฉันสามารถใช้เซิร์ฟเวอร์เดียวได้เนื่องจาก IP (xx.xxx.xx.xx) พอร์ต 80 ของฉันชี้ไปที่เซิร์ฟเวอร์ A อย่างไรก็ตามโดเมนบางโดเมนชี้ไปที่เซิร์ฟเวอร์ A บางแห่งเป็น B เป็นต้น

ด้วยที่อยู่ IP เดียวของฉันฉันจะชี้ไปที่แต่ละเซิร์ฟเวอร์ได้อย่างไร ตัวอย่างเช่น A (โฮสต์) บันทึกทุกจุดไปยังที่อยู่ IP ของฉัน

ขออภัยถ้าฉันสับสน แจ้งให้เราทราบหากฉันไม่ชัดเจน

แต่ละเซิร์ฟเวอร์กำลังเรียกใช้ Ubuntu Server 12.04.02 และใช้ Apache (ถ้ามี) เราเตอร์ของฉันยังเป็น Netgear และ ISP ของฉันคือ Time Warner Cable



@ kobaltz ไม่ถูกต้องเพราะมันเป็นเซิร์ฟเวอร์ที่ต่างกันไม่ใช่โฮสต์เสมือน เหล่านี้คือเซิร์ฟเวอร์ที่มีอยู่จริง 3 แห่ง
Stephen Cioffi

คำตอบของฉันในคำถามยังคงเป็นสิ่งเดียวกันกับที่คุณจะมีพร็อกซีเซิร์ฟเวอร์ย้อนกลับซึ่งจะเป็นสิ่งที่ถูกตีครั้งแรกหลังจากเราเตอร์ จากนั้นมันจะส่งข้อมูลไปยังหนึ่งในสามเซิร์ฟเวอร์ คุณสามารถทำได้จากภายในเราเตอร์หากคุณใช้บางอย่างเช่น OpenWRT
kobaltz

ฉันกำลังใช้คำอธิบายในคำตอบของคำถามอื่น ฉันมีเซิร์ฟเวอร์เครื่องเสมือนที่มี VM สำหรับเกตเวย์แล้ว 20 โหนด ขึ้นอยู่กับโดเมนย่อยและชื่อโดเมนมันจะส่งข้อมูลไปยังหนึ่งใน 20 เซิร์ฟเวอร์
kobaltz

คำตอบ:


9

เว็บไซต์จะรับรู้ผ่านHost:ส่วนหัวที่ส่งจากเบราว์เซอร์ แต่เนื่องจากเราเตอร์ของคุณไม่สามารถถอด HTTP โฮสต์ที่ใช้เสมือนจริงได้คุณจะต้องเลือกเซิร์ฟเวอร์หนึ่งตัวเป็น "ปลายทาง" (และบอกเราเตอร์ของคุณว่าที่อยู่นั้นเป็นเซิร์ฟเวอร์เสมือนจริง / DMZ)

จากนั้นคุณอาจกำหนดค่าให้เครื่องหนึ่งเครื่องเป็นเว็บเซิร์ฟเวอร์สำหรับโดเมนและพร็อกซีสำหรับเครื่องอื่น (เช่นการใช้Apache reverse proxy ) หรือ (อาจจะดีกว่า) คุณติดตั้งพรอกซีบนเครื่องหนึ่ง . บางโดเมนอาจถูกโฮสต์ในเครื่องเดียวกัน nginxเหมาะสำหรับงานประเภทนี้ แต่คุณสามารถใช้ซอฟต์แวร์อื่น (เช่นpound)

ฉันคิดว่าวิธีแก้ปัญหาที่สองนั้นดีกว่าเพราะคุณไม่ต้องเล่นซอกับการกำหนดค่าของเว็บเซิร์ฟเวอร์เลย: พร็อกซีหนึ่งอันทำหน้าที่เป็นพร็อกซี หากคุณต้องการเพิ่มเซิร์ฟเวอร์หรือย้ายโฮสต์เสมือนสถาปัตยกรรมนี้จะง่ายต่อการบำรุงรักษา

                                    +-- virtual hosts 1..9 -- server B
                                    |
router ----- machine A (nginx?) ----+-- virtual hosts 10..23- server C
                                    |
                                    +-- virtual hosts 24..99- server D

เวลาแฝงที่เพิ่มขึ้นเนื่องจากการร้องขอถูกถอดรหัสสองครั้ง (ครั้งเดียวโดยพร็อกซีหนึ่งครั้งโดยผู้รับที่ตั้งใจไว้) จะน้อยมากและมากกว่าการชดเชยด้วยการเร่งความเร็วที่จัดทำโดยพร็อกซี่เอง


ถ้าฉันสร้างแขก VM เป็นพร็อกซีระบบปฏิบัติการที่ดีที่สุดที่จะใช้คืออะไรและฉันควรจัดสรรทรัพยากรฮาร์ดแวร์ใด คุณพูดถึงการตั้งค่าพร็อกซีนี้ใน DMZ ... จำเป็นไหม? ฉันไม่สามารถพอร์ตส่งต่อไปยังพอร์ตที่ฉันต้องการเปิดเพื่อให้ยังคงมีการป้องกันบางอย่างผ่านไฟร์วอลล์ของเราเตอร์และ NAT หรือไม่
Reece

ทรัพยากรสำหรับพร็อกซีไม่ใช่ปัญหา แต่จะเชื่อมโยงกับเครือข่ายอย่างหนัก สำหรับ OS ผมว่ายูนิกซ์แน่นอนว่า Linux หรือ BSD ขึ้นอยู่กับสิ่งที่คุณพอใจที่สุด นอกจากนี้ยังมีอุปกรณ์สำเร็จรูปสำหรับโซลูชั่นการจำลองเสมือนหลาย (vmware, virtualbox, xen, ฯลฯ ) และใช่คุณสามารถส่งต่อพอร์ตที่คุณต้องการได้อย่างแน่นอน
LSerni
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.