Proxypass Directives จำเป็นต้องมี ProxyPassReverse Directive หรือไม่?


20

ProxyPass Directives ทั้งหมดต้องการ ProxyPassReverse Directive หรือไม่

ProxyPass / http://foo.example.com:8080/  
ProxyPassReverse / http://www.example.com/

ฉันเห็นตัวอย่างนี้และเข้าใจว่าการรับส่งข้อมูลทั้งหมดเข้าสู่foo.example.comพร็อกซีไปที่ foo.example.com:8080 บรรทัดที่สองทำอะไร

คำตอบ:


15

คำสั่งนี้จะช่วยให้ Apache ปรับ URL ในสถานที่ที่เนื้อหาสถานที่ตั้งและ URI ส่วนหัวของการตอบสนอง

ตัวอย่างเช่นสมมติว่าเซิร์ฟเวอร์ท้องถิ่นมีที่อยู่http://example.com/ ; แล้วก็

ProxyPass /mirror/foo/ http://backend.example.com/
ProxyPassReverse /mirror/foo/ http://backend.example.com/
ProxyPassReverseCookieDomain backend.example.com public.example.com
ProxyPassReverseCookiePath / /mirror/foo/

จะไม่เพียงทำให้คำขอภายในเครื่องสำหรับhttp://example.com/mirror/foo/barถูกแปลงเป็นการร้องขอภายในพร็อกซีเป็นhttp://backend.example.com/bar (ฟังก์ชันการทำงานที่ ProxyPass จัดเตรียมไว้ที่นี่) นอกจากนี้ยังดูแลการเปลี่ยนเส้นทางเซิร์ฟเวอร์ backend.example.com ส่ง: เมื่อhttp://backend.example.com/barถูกเปลี่ยนเส้นทางโดยเขาไปที่http://backend.example.com/quux Apache จะปรับสิ่งนี้เป็นhttp: / /example.com/mirror/foo/quuxก่อนส่งต่อการตอบสนองการเปลี่ยนเส้นทาง HTTP ไปยังลูกค้า โปรดทราบว่าชื่อโฮสต์ที่ใช้สำหรับสร้าง URL นั้นจะถูกเลือกตามการตั้งค่าของคำสั่ง UseCanonicalName

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