ในหลาย ๆ สถานการณ์ทุกวันนี้ฉันสมัครโฮสต์ VPS เพื่อโฮสต์และเรียกใช้โครงการเว็บ ฉันไม่มีข้อยกเว้น ฉันซื้อ Win 03 vps เพื่อใช้ ในระหว่างกระบวนการใช้งานเราประสบปัญหานั่นคือสภาพแวดล้อมเซิร์ฟเวอร์ประเภทเดียวกันนั้นใช้ได้ - แต่ถ้าเซิร์ฟเวอร์สามประเภทโครงการอยู่ร่วมกับ PHP หนึ่งตัวหนึ่ง ASP และ JSP หนึ่งรายการเราควรจัดสรรพอร์ต 80 เพียงอย่างเดียวอย่างไร เนื่องจากเว็บไซต์ WWW เชิงพาณิชย์มักจะครอบครองพอร์ต 80 แน่นอนถ้าคุณให้บริการเท่านั้นเช่นอินเทอร์เฟซการใช้พอร์ตอื่น ๆ จะไม่ขัดแย้งกับพอร์ต 80 นักพัฒนาหลายคนต้องเผชิญกับปัญหาของพอร์ต 80 และสถานการณ์จริงจะถูก จำกัด ด้วยค่าใช้จ่าย เนื่องจากการซื้อ VPS สำหรับโครงการเพียงอย่างเดียวนั้นไม่ประหยัดไม่คุ้มค่าและไม่สะดวกในการจัดการ ดังนั้นเราควรพิจารณาอย่างถี่ถ้วนว่าจะแจกจ่ายให้กับเซิร์ฟเวอร์หลายเครื่องอย่างระมัดระวังในขณะที่ให้พอร์ต 80 เพื่อให้โฮสต์ที่แตกต่างกันสามารถดำเนินการโครงการเว็บที่เกี่ยวข้องได้
ที่รักเราสามารถพูดข้อกำหนดนี้ได้หรือไม่? ใช่นี่ไม่ใช่ "เทคโนโลยีเวทมนตร์" หรือเทคโนโลยีที่ซับซ้อน ฉันสงสัยว่าคุณมีความเข้าใจใด ๆ เกี่ยวกับ "Reverse Proxy" ในบริการเครือข่ายหนึ่งในฟังก์ชั่นคือการจัดจำหน่ายพอร์ตให้เสร็จสมบูรณ์ เราอาจใช้ชื่อโดเมนเป็นเส้นทางที่จะแจกจ่าย: ชื่อโดเมน AA.com ที่ร้องขอจะถูกแจกจ่ายไปยัง PHP พอร์ต 82 เพื่อดำเนินการ ชื่อโดเมน BB.com ที่ร้องขอใด ๆ จะถูกแจกจ่ายไปยัง ASP Port 83 สำหรับการดำเนินการ ... และอื่น ๆ แน่นอนพอร์ตที่นี่มีไว้สำหรับคำแนะนำ คุณสามารถกำหนดค่าได้ตามต้องการ อย่างไรก็ตามคำขอที่ได้รับจากพอร์ต 80 จะถูกประมวลผลก่อนแล้วแจกจ่าย พร็อกซีย้อนกลับในแง่ของคนธรรมดากำลังหันไปทางซ้ายมือไปทางขวา
เมื่อใดก็ตามที่มีการกล่าวถึงพร็อกซีย้อนกลับผู้คนมักจะนึกถึง Nginx แต่วันนี้เราไม่สนใจ Nginx ที่มีชื่อเสียงในขณะนี้และใช้ NodeJS พี่ชายฝั่งเซิร์ฟเวอร์ที่ใช้ลูปเดียวและเหตุการณ์ ก่อนอื่นโหนดใช้ JS สำหรับการเขียนโปรแกรมเซิร์ฟเวอร์แทนที่จะเป็น nginx เพื่อเขียนการกำหนดค่าหรือ lua ซึ่งสอดคล้องกับรสนิยมของฉันมากขึ้น ประการที่สองฉันคุ้นเคยกับโหนดมากขึ้นและง่ายต่อการกำหนดค่าในทุกด้าน
แพ็คเกจ Node-HTTP-PROXY ที่ทำฟังก์ชั่นนี้ให้เสร็จสมบูรณ์ ในการดาวน์โหลดและติดตั้งกรุณาพิมพ์:
NPM ติดตั้ง http-proxy
หลังจากการติดตั้งเสร็จสมบูรณ์ให้สร้างไฟล์ Proxy.js ใหม่แล้วป้อน:
var http = require ('http'), httpproxy = reghed ('http-proxy'); // สร้างวัตถุพร็อกซีเซิร์ฟเวอร์ใหม่พร็อกซีใหม่ var proxy = httpproxy.createproxyserver ({}); // 'ประเภทเนื้อหา': 'ข้อความ/ธรรมดา'}); Res.end ('มีบางอย่างผิดปกติและเรากำลังรายงานข้อความแสดงข้อผิดพลาดที่กำหนดเอง');}); // สร้าง HTTP 80 อีกพอร์ตเซิร์ฟเวอร์ซึ่งเป็นวิธีการสร้างเซิร์ฟเวอร์ HTTP ในโหนดปกติ // ในแต่ละคำขอให้โทรไปที่ proxy.web (req, res config) วิธีการร้องขอการแจกจ่ายสร้างเซิร์ฟเวอร์ที่กำหนดเองของคุณและโทร `proxy.web ()` ไปยังพร็อกซี // คำขอเว็บไปยังเป้าหมายที่ส่งผ่านในตัวเลือก // คุณสามารถใช้ `proxy.ws () // คุณสามารถกำหนดตรรกะที่กำหนดเองของคุณเพื่อจัดการกับคำขอ // จากนั้นพร็อกซีโฮสต์ VAR = req.url; req.connection.remoteaddress)); proxy.web (req, res, {เป้าหมาย: 'http: // localhost: 8080'});}); console.log ("ฟังพอร์ต 80") เซิร์ฟเวอร์หากคุณพูดคุยเกี่ยวกับค่าใช้จ่ายในการใช้พร็อกซีเซิร์ฟเวอร์อาจเป็นไปได้ว่ามันจะใช้การดำเนินการ CPU มากกว่าโดยไม่ต้องใช้ทรัพยากรมากขึ้น
ปัญหาการใช้งาน: ไม่สามารถระบุโฟลเดอร์ proxy.web (req, res, {เป้าหมาย: 'http://vevb.com:81/foo/'});