วิธีการทำให้ HAProxy เขียนซ้ำไปยังส่วนหลังอื่นเมื่อไฟล์แรกหายไป? สิ่งที่ฉันต้องการคือerrorloc
การเขียนใหม่แทนที่จะเปลี่ยนเส้นทางดังนั้นลูกค้าจึงไม่ทราบว่าจะเปลี่ยนเส้นทาง
เราได้พัฒนาแอปพลิเคชันโดยคำนึงถึง NginX ซึ่งเป็นทั้งโหลดบาลานซ์บาลานซ์พร็อกซีย้อนกลับและเว็บเซิร์ฟเวอร์สำหรับไฟล์คงที่ แอปพลิเคชันขึ้นอยู่กับกรอบOpaซึ่งต้องการเซสชันที่ยึดตามคุกกี้ - ได้รับการสนับสนุนโดย NginX และ HAproxy คุณลักษณะแอปพลิเคชันที่เรามีปัญหาคือการสร้างเนื้อหาแบบไดนามิก มันสร้างภาพตามต้องการ แต่หลังจากรุ่นมันจะถูกบันทึกไว้ในดิสก์และสามารถเข้าถึงได้แบบคงที่ด้วยเส้นทางที่กำหนด
ปัญหาได้รับการแก้ไขอย่างง่ายดายด้วย NginX - พยายามอ่านไฟล์โลคัลและใช้โหลดบาลานซ์แบ็คเอนด์เฉพาะในกรณีที่ไฟล์หายไป (ยังไม่ได้สร้าง):
server {
server_name wkaliszu.pl;
location /thumb {
root /path_on_disk/to_cached_content;
expires 7d;
# try to access already generated content
try_files $uri @wkaliszu;
}
location / {
# reverse proxy to the application
[...]
}
location @wkaliszu {
# reverse proxy to the application
[...]
}
}
เซิร์ฟเวอร์ถูกโอนย้ายและตอนนี้ใช้ HAPproxy สำหรับการทำโหลดบาลานซ์ซึ่งไม่ใช่เว็บเซิร์ฟเวอร์และไม่รองรับคุณสมบัตินี้ ขณะนี้การสร้างซอฟต์แวร์แบบไดนามิกจะดำเนินการในแต่ละครั้งที่ลูกค้าพยายามเข้าถึงทรัพยากรสิ่งที่ช้ากว่ามากและสิ้นเปลืองทรัพยากร มันจะดีถ้ามันสามารถใช้ back-end ถัดไปถ้าเว็บเซิร์ฟเวอร์แคชแบบธรรมดาสำหรับไฟล์คงที่ล้มเหลวด้วยข้อผิดพลาด 404 แต่ฉันไม่สามารถหาวิธีที่จะทำได้อย่างง่ายดาย การเปลี่ยนเส้นทาง/thumb
ไปยัง NginX ซึ่งพยายามอ่านไฟล์สแตติกและเขียนใหม่อีกครั้งเพื่อ HAproxy ด้วยส่วนหัว HTTP ใหม่เท่านั้นที่อยู่ในใจ แต่ฉันต้องการค้นหาสิ่งที่ดีกว่า