IIS สามารถกำหนดค่าให้ส่งต่อคำขอไปยังเว็บเซิร์ฟเวอร์อื่นได้หรือไม่


81

ฉันมีหลายเว็บไซต์ที่ติดตั้งบนเซิร์ฟเวอร์ IIS 6 หนึ่งตัวที่โดดเด่นโดย Host Header

อย่างไรก็ตามฉันต้องการมีหนึ่งในเว็บไซต์ที่ให้บริการโดยเซิร์ฟเวอร์ Linux / Apache บนเครือข่ายของฉัน ฉันจำเป็นต้องใช้ reverse proxy add-in สำหรับ IIS หรือมีวิธีง่าย ๆ ในการแจ้งให้ IIS ส่งต่อคำขอทั้งหมดไปยังเซิร์ฟเวอร์อื่นหรือไม่

คำตอบ:


83

สำหรับ IIS 7.5 นั้น Microsoft ได้จัดเตรียมโมดูลอย่างเป็นทางการสำหรับสิ่งนี้!

ในการตั้งค่าไซต์คุณจะได้รับไอคอน "URL Rewrite"

  • เปิด
  • คลิกขวาที่ "รายการกฎขาเข้า"
  • เลือก "เพิ่มกฎ"
  • เลือก "Reverse proxy"

ในกล่องโต้ตอบนี้คุณสามารถป้อนชื่อโฮสต์ + พอร์ตเพื่อส่งต่อ หลังจากเพิ่มกฎแล้วการเปิดกล่องโต้ตอบแก้ไขจะเสนอการปรับแต่งเพิ่มเติม


8
ไม่เป็นไร แต่คำถามเดิมระบุ IIS 6 ดังนั้นฉันสับสนว่าคำตอบเฉพาะสำหรับ IIS 7.5 ถูกทำเครื่องหมายเป็น 'ยอมรับ' มีวิธีแก้ปัญหาสำหรับ IIS 6 หรือไม่?
Tim Long

@Tim: คุณสามารถใช้การเขียน ISAPI ที่กล่าวถึงด้านล่าง แต่อย่างอื่นนั้นฉันไม่คุ้นเคยกับโซลูชัน IIS6
vdboor

ฉันมีปัญหากับเครื่อง Win10 และไม่สามารถติดตั้งได้ มีข้อ จำกัด สำหรับโมดูลเหล่านี้หรือไม่? จำเป็นต้องเรียกใช้บนเซิร์ฟเวอร์ OS จาก MS หรือไม่ ขอบคุณ
fpdragon

1
โปรดทราบว่ามีปัญหาในการย้อนกลับคำขอโพสต์ proxying โดยใช้วิธีนี้
Casper Leon Nielsen

2
@CasperLeonNielsen คุณช่วยชี้ให้เราดูรายละเอียดเพิ่มเติมเกี่ยวกับปัญหา POST ที่อาจเกิดขึ้นได้ไหม
Jens Ehrich

17

ฉันใช้ซอฟต์แวร์ของบุคคลที่สามสำหรับ Windows (IIS) เพื่อวัตถุประสงค์นี้ซึ่ง - นอกเหนือจากสิ่งอื่น ๆ เช่น URL เขียนใหม่ - ไม่งานนี้สวยดี: ISAPI Rewrite

ISAPI Rewrite เป็นเอ็นจิ้นการจัดการ URL ที่มีประสิทธิภาพโดยยึดตามนิพจน์ทั่วไป มันทำหน้าที่เหมือน mod_Rewrite ของ Apache แต่ได้รับการออกแบบมาเป็นพิเศษสำหรับ Microsoft Internet Information Server (IIS) ISAPI Rewrite เป็นตัวกรอง ISAPI ที่เขียนด้วย C / C ++ บริสุทธิ์ดังนั้นมันจึงเร็วมาก ISAPI_Rewrite ช่วยให้คุณมีอิสระในการทำงานนอกเหนือจากโครงร่าง URL มาตรฐานและพัฒนาโครงร่างของคุณเอง

ค้นหา "Proxying" นี่คือเอกสารสำหรับกฎ RewriteProxy

นอกจากนี้ยังมีโครงการโอเพนซอร์สที่คล้ายกันมาก: อิออนของ ISAPI Rewrite กรอง


ลิงก์ไปยัง doc สำหรับ IIRF ProxyPass: cheeso.members.winisp.net/Iirf20Help/html/…
Cheeso

2
+1 - ใช้งานได้ดีกับ IIS 6
Evan Anderson

ฉันไม่สามารถใช้ IIRF บน Windows 2008 R2 SP1 ได้เนื่องจากปัญหานี้: iirf.codeplex.com/workitem/32479
Peter K.

1

ไม่ไม่ใช่บน IIS 6 ดูที่การใช้ nginx / ubuntu (หรือแม้แต่ nginx บน windows) เป็น reverse proxy หน้าเซิร์ฟเวอร์ IIS6 ของคุณ เราต้องใช้ IIS7.5 สำหรับฟีเจอร์พร็อกซีย้อนกลับ


-3

นี้บทความ KB ของ Microsoftจะช่วยตอบคำขอนี้

ขั้นตอนการเปลี่ยนเส้นทางคำขอไปยังเว็บไซต์หรือไดเรกทอรีอื่น:

  1. ในตัวจัดการ IIS ขยายเครื่องคอมพิวเตอร์คลิกขวาเว็บไซต์หรือไดเรกทอรีที่คุณต้องการเปลี่ยนเส้นทางและคลิกคุณสมบัติ

  2. คลิกการไดเรกทอรีภายในบ้านไดเรกทอรีเสมือนหรือไดเรกทอรีแท็บ

  3. ภายใต้เนื้อหาสำหรับแหล่งที่มานี้ควรมาจากคลิกการเปลี่ยนเส้นทางไปยัง URL

  4. ในกล่องเปลี่ยนเส้นทางไปยังพิมพ์ URL ของไดเรกทอรีปลายทางหรือเว็บไซต์


6
ได้รับแท็ก "reverse-proxy" ในคำถามของผู้โพสต์ฉันเดาว่าเขากำลังมองหาฟังก์ชั่น reverse proxy ไม่ใช่การเปลี่ยนเส้นทาง HTTP
Evan Anderson

5
เซิร์ฟเวอร์อื่นไม่สามารถใช้งานได้แบบสาธารณะดังนั้นน่าเสียดายที่นี่ไม่สามารถใช้งานได้
Daniel O

นี่เป็นเพียงผิดธรรมดา
tacos_tacos_tacos
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.