এনগিনেক্স বিপরীত প্রক্সি দ্বারা ফিরে আসা HTML পৃষ্ঠাগুলি পরিবর্তন করুন


17

ইন্টারনেট থেকে ইন্ট্রানেটের ভিতরে থাকা একটি তৃতীয় পক্ষের অ্যাপ্লিকেশনটিতে অ্যাক্সেসের জন্য আমার বিপরীত প্রক্সি সেটআপ রয়েছে। যাক এই অ্যাপ্লিকেশনটি ইউআরএলে রয়েছে:

https://internalserver:8080/ (কেবল ইন্টারানেট থেকে পৌঁছনীয়)

এবং প্রক্সি চালু আছে:

https://proxyserver/ (বিশ্বের যে কোনও জায়গা থেকে পৌঁছনীয়)

প্রক্সিটি এনজিনেক্স দ্বারা পরিচালিত এবং ঠিকঠাক কাজ করছে। যখন ব্যবহারকারী অ্যাক্সেস করেন https://proxyserver/ তারা এ অ্যাপ্লিকেশনটির সামগ্রী পান https://internalserver:8080/

সমস্যাটি হ'ল অ্যাপ্লিকেশনটি এইচটিএমএল প্রতিক্রিয়াতে নিখুঁত ইউআরএল লিখছে তাই যখন ব্যবহারকারী কোনও নতুন পৃষ্ঠায় একটি লিঙ্ক ক্লিক করে ব্রাউজারটি পৃষ্ঠার অভ্যন্তরীণ নাম যেমন সনাক্ত করার https://internalserver:8080/somepage পরিবর্তে এটির সন্ধান করার চেষ্টা করছে https://proxyserver/somepage

আমি জানি এটি একটি প্রোগ্রাম বাগ, তবে আমি প্রোগ্রামটি পরিবর্তন করতে পারছি না।

আমি কি প্রতিক্রিয়াটিকে বাধা দিতে পারি, ইউআরএলগুলি সংশোধন করে এটিকে (সংশোধিত) চূড়ান্ত ক্লায়েন্টে এনজিনেক্স সহ প্রেরণ করতে পারি? নাকি অন্য কোন সরঞ্জাম দিয়ে?

সম্পাদনা: আমি এই প্রশ্নটি আগে দেখেছি , তবে আমার ক্ষেত্রে আরও সুনির্দিষ্ট, উদ্ধৃত প্রশ্নটি জেনেরিক পরিবর্তন চাইবে। সেক্ষেত্রে দ্রুত-সিজি অ্যাডহক প্রোগ্রাম হ'ল সর্বোত্তম সমাধান, আমি যা চাই তা আরও সাধারণ একটি দৃশ্যের জন্য আরও সুনির্দিষ্ট সমাধান। যখন একটি ফাস্ট-সিজি প্রোগ্রাম আইএম কাজ করতে পারে তবে সবচেয়ে সহজ এবং সম্ভবত আরও শক্তিশালী এবং বাস্তব বিশ্বে প্রমাণিত হয়েছে, এই দৃশ্যের সমাধান।


উত্তর:


16

এখানে ইউটিউবে একটি অফিসিয়াল এনগিনেক্স ভিডিও রয়েছে যা ইনলাইন সামগ্রীর পুনর্লিখনকে দেখায়।

https://youtu.be/7Y7ORypoHhE?t=20m22s

প্রকৃতপক্ষে সাব-ফিল্টার দিয়ে

http://nginx.org/en/docs/http/ngx_http_sub_module.html

আপনার ক্ষেত্রে, আপনি এর মতো কিছু খুঁজছেন:

location / {
sub_filter_once off;
sub_filter_types text/html;
sub_filter "https://internalserver:8080" "https://proxyserver";
}

3

http://nginx.org/en/docs/http/ngx_http_sub_module.html

এনজিএক্স_এইচটিপি_সুব_মডিউল মডিউল এমন একটি ফিল্টার যা একটি নির্দিষ্ট স্ট্রিংকে অন্য একটি দ্বারা প্রতিস্থাপন করে।

এই মডিউলটি ডিফল্টরূপে নির্মিত হয়নি, এটি --with-http_sub_module কনফিগারেশন প্যারামিটারের সাহায্যে সক্ষম করা উচিত।

উদাহরণ কনফিগারেশন

sub_filter      </head>
    '</head><script language="javascript" src="$script"></script>';
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.