मैं निम्नलिखित Nginx का उपयोग करने का एक तरीका ढूंढ रहा हूं:
- एक अनुरोध को रोकें
- URL पढ़ें, इसे पार्स करें और इससे एक मान पढ़ें।
- उस मान को नए अनुरोध शीर्षलेख के रूप में जोड़ें
- URL अपडेट करें (किसी विशेष मान को निकालें)
- किसी अन्य सर्वर के लिए अनुरोध अग्रेषित करें
उदाहरण के लिए:
Request URL - http://<<nginx>>/test/001.xml/25
Final URL - http://<<server>>/test/001.xml with header (x-replica: 25)
मेरे पास वास्तविक सर्वर के लिए एक अपस्ट्रीम के साथ एक nginx सर्वर सेटअप है। मैं सोच रहा था कि मैं इसे प्राप्त करने के लिए Nginx को कैसे सेटअप करूं?
उत्तर:
जवाब के लिए 2 № 1चूंकि डेटा अनुरोध के भीतर ही मौजूद है (यूआरआई द्वारा उपलब्ध) $uri
nginx में चर), आप nginx lua मॉड्यूल का उपयोग करके पार्स कर सकते हैं। यह काम करने के लिए nuax को लुआ के साथ संकलित करने की आवश्यकता होगी, देखें: ओपनरेस्टी के नगनेक्स लुआ मॉड्यूल.
वहां से आप इसका उपयोग कर सकते हैं set_by_lua_block
या set_by_lua_file
आदेश दिया हुआ $uri
एक पैरामीटर के रूप में।
कॉन्फ़िगरेशन में यह कुछ इस तरह दिखेगा:
location / {
...
set_by_lua_file $var_to_set /path/to/script.lua $uri;
# $var_to_set would contain the result of the script from this point
proxy_set_header X-Replica $var_to_set;
...
}
में script.lua
हम पहुँच सकते हैं $uri
में से चर ngx.arg
सूची (देखें ये दस्तावेज़):
function parse_uri( uri )
parsed_uri = uri
-- Parse logic here
return parsed_uri
end
return parse_uri( ngx.arg[1] )
इसी तरह, आप इस फ़ंक्शन को संशोधित कर सकते हैं या अपडेट के साथ एक चर बनाने के लिए दूसरा बना सकते हैं $uri
.