เรามีพร็อกซีเซิร์ฟเวอร์ย้อนกลับหน้าเซิร์ฟเวอร์ Exchange และต้องการล็อกเส้นทางเพิ่มเติม ตัวอย่างย่อ:
ล้มเหลว (แต่ใช้ได้กับทุกหน้าที่ไม่ต้องการการรับรองความถูกต้อง):
<VirtualHost 192.168.1.81:443>
ServerName autodiscover.example.com
SSLEngine On
SSLProxyEngine On
Include conf/sslcert.conf
RewriteEngine On
RewriteRule (.*) https://exchangecluster.example.com$1 [P,L]
ProxyPassReverse / https://exchangecluster.example.com/
</VirtualHost>
ผลงาน:
<VirtualHost 192.168.1.81:443>
ServerName autodiscover.example.com
SSLEngine On
SSLProxyEngine On
Include conf/sslcert.conf
RewriteEngine On
ProxyPass / https://exchangecluster.example.com/
ProxyPassReverse / https://exchangecluster.example.com/
</VirtualHost>
คำขอผ่านเมื่อใช้กฎการเขียนซ้ำและตอบกลับด้วย 401 และมีตัวเลือกสำหรับ WWW-Authenticate ตามที่คาดไว้ ด้วย ProxyPass การรับรองความถูกต้องของผู้ใช้จะใช้งานได้ ในขณะที่ RewriteRUle ผู้ใช้จะได้รับการแจ้งเตือนอย่างต่อเนื่องสำหรับการรับรองความถูกต้อง ซึ่งฉันคิดว่าเกี่ยวข้องกับ NTLM
มีคำถามหลายข้อใน StackExchange ที่บอกว่า mod_proxy ไม่สามารถจัดการการรับรองความถูกต้องแบบพาสทรูของ NTLM ได้ แต่ในกรณีนี้ก็ใช้ได้
ปัญหาการเขียนซ้ำของ mod สามารถแก้ไขได้โดยจัดการพาธที่ไม่ต้องการการพิสูจน์ตัวตน จากนั้นปฏิเสธพาธที่ควรถูกบล็อก จากนั้นทำ Global ProxyPass
วิธีแก้ปัญหา:
<VirtualHost 192.168.1.81:443>
ServerName autodiscover.example.com
SSLEngine On
SSLProxyEngine On
Include conf/sslcert.conf
RewriteEngine On
# Block all requests except the autodiscover URLs
RewriteCond "%{REQUEST_URI}" "!^/autodiscover/autodiscover\.(?:xml|json|svc)$" [NC]
RewriteRule ^ - [F]
ProxyPass / https://exchangecluster.example.com/
ProxyPassReverse / https://exchangecluster.example.com/
</VirtualHost>
ก ความคิดเห็น ในอีก คำถาม แนะนำให้ใช้ mpm_prefork_module แทน mpm_worker_module ฉันตรวจสอบ 00_mpm.conf ของเราแล้ว และเรากำลังใช้ worker และมันทำงานกับ proxypass ได้ ดังนั้นรู้สึกเหมือนเราขาดบางอย่างสำหรับตัวเลือก mod_rewrite proxy
คำถามส่วนใหญ่ที่ฉันพบเกี่ยวกับการให้ reverse proxy ตรวจสอบสิทธิ์ผ่าน NTLM คำถามนี้เกี่ยวกับการผ่านการรับรองความถูกต้องไปยังเซิร์ฟเวอร์และการรักษาเซสชันให้เหมือนเดิม ไม่ใช่การรับรองความถูกต้องจาก Apache (โดยถือว่าไม่จำเป็นในการทำงานนี้)
มีการตั้งค่าใดบ้างที่ต้องเปิดใช้งานเพื่ออนุญาตพร็อกซีขณะใช้ mod_rewrite