2012-09-14 19 views
34

मैं nginx को रिवर्स प्रॉक्सी के रूप में उपयोग कर रहा हूं और सफलता के बिना अपस्ट्रीम सर्वर (अपाचे) की प्रतिक्रिया से कस्टम हेडर पढ़ने की कोशिश कर रहा हूं।nginx - अपस्ट्रीम सर्वर से कस्टम हेडर पढ़ें

HTTP/1.0 200 OK 
Date: Fri, 14 Sep 2012 20:18:29 GMT 
Server: Apache/2.2.17 (Ubuntu) 
X-Powered-By: PHP/5.3.5-1ubuntu7.10 
Connection: close 
Content-Type: application/json; charset=UTF-8 
My-custom-header: 1 

मैं मेरे-कस्टम हेडर से मूल्य पढ़ सकते हैं और इसका उपयोग करना चाहते एक अगर खंड में:

location/{ 
    // ... 
    // get My-custom-header value here 
    // ... 
} 

इस संभव है अपाचे प्रतिक्रिया के बाद है? अग्रिम में धन्यवाद।

उत्तर

38

$ http _ name_of_the_header

nginx में मनमाने ढंग से अनुरोध हेडर क्षेत्र का समर्थन करता है। http://nginx.org/en/docs/http/ngx_http_core_module.html#var_http_

अपने उदाहरण के लिए चर $http_my_custom_header होगा: ऊपर के उदाहरण में एक चर नाम का आखिरी हिस्सा फ़ील्ड नाम अंडरस्कोर द्वारा प्रतिस्थापित डैश से लोअर केस में बदला

संदर्भ यहां डॉक है।

+2

दरअसल, यह गलत है, और इसका जवाब चिह्नित नहीं किया जाना चाहिए। भविष्य में इस पर आने वाले किसी भी व्यक्ति के लिए, सही चर '' http_' है। एक उदाहरण के रूप में ओपी का उपयोग करना, '$ http_my_custom_header' (यह मामला संवेदनशील है!) – jduncanator

+0

मैंने इस उत्तर को दस्तावेज़ीकरण से मेल खाने के लिए सही किया है;) –

+6

जैसा कि यह पता चला है, यह सही नहीं है। ओपी ने प्रतिक्रिया हेडर के लिए मूल्य पढ़ने के लिए कहा। आपको '$ sent_http_my_custom_header' का उपयोग करना चाहिए। http://nginx.org/en/docs/http/ngx_http_core_module.html#var_sent_http_ – Nathan

3

उपयोग $ http_MY_CUSTOM_HEADER

आप की तरह

set my_header $http_MY_CUSTOM_HEADER; 
if($my_header != 'some-value') { 
#do some thing; 
} 
+0

आदमी कहता है - एक परिवर्तनीय नाम का अंतिम भाग फ़ील्ड नाम __lower case__ में परिवर्तित किया गया है जिसमें अंडरस्कोर द्वारा प्रतिस्थापित डैश हैं। –

23

मैं एक ही मुद्दे का सामना करना पड़ रहा था कुछ-बात लिख सकते हैं। मैंने $http_my_custom_header और $sent_http_my_custom_header दोनों की कोशिश की लेकिन यह मेरे लिए काम नहीं किया।

हालांकि $upstream_http_my_custom_header का उपयोग करके इस समस्या को हल किया गया।

+0

यह मेरे लिए काम करता है, nginx 1.10.1 पर – chhantyal

संबंधित मुद्दे