हमें पहले प्रॉक्सी_पास पर दस्तावेज़ को ध्यान से और पूरी तरह से पढ़ना चाहिए ।
URI को अपस्ट्रीम सर्वर पर पारित किया जाता है, यह इस आधार पर निर्धारित किया जाता है कि "प्रॉक्सी_पास" निर्देश का उपयोग URI के साथ किया गया है या नहीं। प्रॉक्सी_पास के निर्देश में अनुगामी स्लैश का मतलब है कि यूआरआई मौजूद है और इसके बराबर है /। अनुगामी स्लेश का मतलब है कि टोपी यूआरआई अनुपस्थित है।
URI के साथ Proxy_pass :
location /some_dir/ {
proxy_pass http://some_server/;
}
उपरोक्त के साथ, निम्नलिखित प्रॉक्सी है:
http:// your_server/some_dir/ some_subdir/some_file ->
http:// some_server/ some_subdir/some_file
मूल रूप से, से अनुरोध पथ को बदलने के लिए /some_dir/प्रतिस्थापित किया जाता है ।//some_dir/some_subdir/some_file/some_subdir/some_file
URI के बिना Proxy_pass :
location /some_dir/ {
proxy_pass http://some_server;
}
दूसरे के साथ (कोई अनुगामी स्लैश): प्रॉक्सी इस तरह से जाता है:
http:// your_server /some_dir/some_subdir/some_file ->
http:// some_server /some_dir/some_subdir/some_file
मूल रूप से, पूर्ण मूल अनुरोध पथ बिना किसी बदलाव के पास हो जाता है।
तो, आपके मामले में, ऐसा लगता है कि आपको केवल जो कुछ भी चाहिए उसे प्राप्त करने के लिए ट्रेलिंग स्लैश को छोड़ देना चाहिए।
चेतावनी
ध्यान दें कि यदि आप प्रॉक्सी_पास में चर का उपयोग नहीं करते हैं तो स्वत: फिर से लिखना ही काम करता है। यदि आप चर का उपयोग करते हैं, तो आपको अपने आप को फिर से लिखना चाहिए:
location /some_dir/ {
rewrite /some_dir/(.*) /$1 break;
proxy_pass $upstream_server;
}
ऐसे और भी मामले हैं जहाँ फिर से काम नहीं होगा, इसीलिए प्रलेखन पढ़ना एक आवश्यक है।
संपादित करें
आपके प्रश्न को फिर से पढ़ते हुए, ऐसा लगता है कि मुझे याद आ गया है कि आप केवल html आउटपुट को संपादित करना चाहते हैं।
उसके लिए, आप उप_फिल्टर निर्देशन का उपयोग कर सकते हैं । कुछ इस तरह ...
location /admin/ {
proxy_pass http://localhost:8080/;
sub_filter "http://your_server/" "http://your_server/admin/";
sub_filter_once off;
}
मूल रूप से, वह स्ट्रिंग जिसे आप बदलना चाहते हैं और प्रतिस्थापन स्ट्रिंग