जब पहली फ़ाइल गुम हो रही है तो HAProxy को एक अलग बैक-एंड में कैसे फिर से लिखना है? मुझे क्या चाहिए errorloc
लेकिन रीडायरेक्ट के बजाय फिर से लिखना है, इसलिए क्लाइंट को रीडायरेक्ट के बारे में पता नहीं है।
हमने NginX को ध्यान में रखते हुए एक एप्लिकेशन विकसित किया है, जो स्टैटिक फ़ाइलों के लिए रिवर्स प्रॉक्सी और वेब सर्वर दोनों को संतुलित कर रहा था। आवेदन ओपा ढांचे पर आधारित है जिसमें कुकीज़ के आधार पर चिपचिपा सत्रों की आवश्यकता होती है - जो नगिनएक्स और हैप्रोक्सी दोनों द्वारा समर्थित है। हमारे पास जिस एप्लिकेशन सुविधा की समस्या है वह डायनामिक कंटेंट जेनरेशन है। यह मांग पर चित्र बनाता है, लेकिन पीढ़ी के बाद इसे डिस्क पर सहेजा जाता है और इसे नियतात्मक पथ के साथ सांख्यिकीय रूप से एक्सेस किया जा सकता है।
समस्या को आसानी से 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 का उपयोग करता है, जो वेब सर्वर नहीं है और इस सुविधा का समर्थन नहीं करता है। अब डायनेमिक सॉफ्टवेयर जेनरेशन का प्रदर्शन किया जाता है, जब हर बार क्लाइंट संसाधन तक पहुंचने की कोशिश करता है, जो बहुत धीमा और संसाधनों को बर्बाद करता है। यह ठीक होगा अगर यह अगले बैक-एंड का उपयोग कर सकता है यदि पहला (स्थिर फ़ाइलों के लिए सरल कैशिंग सर्वर) त्रुटि 404 के साथ विफल हो गया, लेकिन मुझे इसे सरल तरीके से करने का कोई तरीका नहीं मिल सकता है। /thumb
NginX को पुनर्निर्देशित करना, जो स्थिर फ़ाइल को पढ़ने की कोशिश करता है और फिर से नए HTTP हेडर के साथ HAproxy को फिर से लिखता है, केवल मेरे दिमाग में आता है, लेकिन मैं कुछ बेहतर खोजना चाहता हूं।