/ / प्रॉक्सी का अनुरोध करें - URL से एक पैरामीटर प्राप्त करें, हेडर जोड़ें और Nginx - nginx, प्रॉक्सी, हेडर, http- प्रॉक्सी का उपयोग करके URL अपडेट करें

प्रॉक्सी एक अनुरोध - यूआरएल से पैरामीटर प्राप्त करें, एक हेडर जोड़ें और Nginx - nginx, प्रॉक्सी, हेडर, http-प्रॉक्सी का उपयोग कर अनुरोध यूआरएल अपडेट करें

मैं निम्नलिखित Nginx का उपयोग करने का एक तरीका ढूंढ रहा हूं:

  1. एक अनुरोध को रोकें
  2. URL पढ़ें, इसे पार्स करें और इससे एक मान पढ़ें।
  3. उस मान को नए अनुरोध शीर्षलेख के रूप में जोड़ें
  4. URL अपडेट करें (किसी विशेष मान को निकालें)
  5. किसी अन्य सर्वर के लिए अनुरोध अग्रेषित करें

उदाहरण के लिए:

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.