2008-10-22 12 views
15

हम इस समय एक लोड संतुलन के रूप में प्रयोग कर रहे हैं HAProxy में अनुरोध करते हैं, और इसे नियमित रूप सुनिश्चित करें कि वे एक विकल्प अनुरोध का उपयोग कर जीवित हैं बनाने के लिए नीचे की ओर बॉक्स करने के लिए अनुरोध करता है:हैंडलिंग विकल्प nginx

विकल्प/index.html HTTP/1.0

मैं कैशिंग के साथ रिवर्स प्रॉक्सी के रूप में nginx सेट अप करने के साथ काम कर रहा हूं (एनसीएच का उपयोग करके)। किसी कारण से, nginx 405 लौटा रहा है जब एक विकल्प अनुरोध में आता है:

192.168.1.10 - - [22/अक्टूबर/2008: 16: 36: 21 -0700] "विकल्प /index.html HTTP/1.0 "405 325" - "" - "1 9 2.168.1.10

डाउनस्ट्रीम वेबसर्वर को सीधे मारते समय, मुझे उचित 200 प्रतिक्रिया मिलती है। मेरा सवाल यह है कि: आप nginx को उस प्रतिक्रिया को कैसे पास करते हैं, हैप्रोक्सी के साथ, या, मैं nginx.conf में प्रतिक्रिया कैसे सेट कर सकता हूं?

+0

क्या यह मॉड्यूल अभी तक किसी भी मौके पर उपलब्ध है? –

उत्तर

2

httpchk विकल्प में, आप इस तरह HTTP विधि निर्दिष्ट कर सकते हैं:

httpchk GET http://example.com/check.php 

तुम भी/की तरह पोस्ट, या एक सादे URI का उपयोग कर सकते हैं। मैंने PHP की जांच की है, क्योंकि PHP Nginx के लिए बाहरी चलाता है।

20

मुझे शायद देर हो चुकी है, लेकिन मुझे एक ही समस्या थी, और इसके लिए दो समाधान मिले।

पहले Nginx को धोखा देना है वास्तव में है कि एक 405 स्थिति एक 200 ठीक और फिर अपने HAProxy के लिए इसे इस तरह proxy_pass:

error_page 405 =200 @405; 
location @405 { 
    root /; 
    proxy_pass http://yourproxy:8080; 
} 

दूसरा समाधान सिर्फ पकड़ने के लिए विकल्प का अनुरोध है और उन लोगों के लिए एक प्रतिक्रिया का निर्माण अनुरोध:

location/{ 
    if ($request_method = OPTIONS) { 
     add_header Content-Length 0; 
     add_header Content-Type text/plain; 
     return 200; 
    } 
} 

बस चुनें कि कौन सा आपको बेहतर बनाता है।

मैंने इसे blog post में लिखा जहां आप अधिक जानकारी प्राप्त कर सकते हैं।