50 * पृष्ठ के लिए Nginx add_header


19

मैं वर्तमान में प्रतिक्रिया के लिए एक हेडर जोड़ने की कोशिश कर रहा हूँ जब यह किसी प्रकार की 50 * त्रुटि भेज रहा हो। मेरे पास पहले से ही http ब्लॉक पर एक add_header निर्देश है, और यह सभी अनुरोधों के लिए सम्मान प्राप्त करता है सिवाय इसके कि इसमें त्रुटियां लगती हैं। मैंने अपने एक vhost में निम्नलिखित की कोशिश की:

location /mediocregopheristhecoolest {
    add_header X-Test "blahblahblah";
    return 502;                                                                                                    
}       

उस पेज पर जाने से मुझे 502 मिलते हैं, लेकिन कोई हेडर नहीं है। यह बस कुछ nginx नहीं करता है, या मैं इसे गलत कर रहा हूँ?


क्या आप $ कर्ल -I <url> // mediocregopheristhecoolest
Chida

जवाबों:


21

प्रलेखन में कहा गया है कि add_header "निर्दिष्ट फ़ील्ड को एक प्रतिक्रिया हेडर में जोड़ता है बशर्ते कि प्रतिक्रिया कोड 200, 204, 206, 301, 302, 303, 304 या 307 के बराबर हो। एक मान में चर हो सकते हैं।" तो यह एक 502 के साथ काम नहीं करता है।

मैं यह जोड़ना भूल गया कि आप अन्य कोड में हेडर जोड़ने के लिए तीसरे पक्ष के हेडर का उपयोग कर सकते हैं । आपको शायद इसे जोड़ने के लिए फिर से जोड़ना होगा, हालाँकि।


मरत की टिप्पणी देखें: नया नग्नेक्स संस्करण प्रतिक्रिया कोड की परवाह किए बिना हेडर की स्थापना का समर्थन करता है
लॉरेंस रिटवेल्ड

44

Nginx 1.7.5 के बाद से आप alwaysप्रतिक्रिया कोड के बावजूद एक हेडर जोड़ने के लिए उपयोग कर सकते हैं :

add_header X-Test "blahblahblah" always;

1
निराशा की बात है, डेबियन के भंडार में संस्करण वर्तमान में पुराना है (1.6.x), लेकिन nginx नवीनतम स्थिर बिल्ड (1.8.x अभी) के साथ अपने स्वयं के भंडार को बनाए रखता है
कुंगफू

आप एक पहले से ही काम कर रहा डेबियन सिस्टम को अपग्रेड करना चाहते हैं, डेबियन backports सुरक्षित है ... packages.debian.org/jessie-backports/httpd/nginx अलग पैकेज संगठन नदी के ऊपर पैकेज का उपयोग करें (उन्नयन nginx चिकनी तंत्र के बजाय कुछ अन्तराल के कारण हो सकता है )। और इसकी पोस्टम स्क्रिप्ट लॉग को हटा देती है। और कुछ अन्य छोटे अंतर ...
लाजोस वेरेस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.