অ্যান্ড্রয়েড

একটি এনগিনেক্স বিপরীত প্রক্সি সেট আপ করা হচ্ছে

odia biporita sabda || জন্য Trick Odia Opostie ওয়ার্ড || ASO জন্য odia ব্যাকরণ .. ডিজিটাল ওয়ানডে

odia biporita sabda || জন্য Trick Odia Opostie ওয়ার্ড || ASO জন্য odia ব্যাকরণ .. ডিজিটাল ওয়ানডে

সুচিপত্র:

Anonim

বিপরীত প্রক্সি এমন একটি পরিষেবা যা ক্লায়েন্টের অনুরোধ গ্রহণ করে, এক বা একাধিক প্রক্সি সার্ভারের কাছে অনুরোধটি প্রেরণ করে, প্রতিক্রিয়াটি নিয়ে আসে এবং ক্লায়েন্টের কাছে সার্ভারের প্রতিক্রিয়া সরবরাহ করে।

এর কর্মক্ষমতা এবং স্কেলিবিলিটির কারণে, এনজিআইএনএক্স প্রায়শই এইচটিটিপি এবং নন-এইচটিপি সার্ভারগুলির জন্য বিপরীত প্রক্সি হিসাবে ব্যবহৃত হয়। একটি সাধারণ বিপরীত প্রক্সি কনফিগারেশন হ'ল Ngin.js, পাইথন বা জাভা অ্যাপ্লিকেশনগুলির সামনে Nginx স্থাপন করা।

বিপরীত প্রক্সি হিসাবে Nginx ব্যবহার করা আপনাকে বেশ কয়েকটি অতিরিক্ত সুবিধা দেয়:

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

এই নিবন্ধটি বিপরীত প্রক্সি হিসাবে Nginx কনফিগার করার জন্য প্রয়োজনীয় পদক্ষেপের রূপরেখা দেয়।

পূর্বশর্ত

আমরা ধরে নিচ্ছি যে আপনি আপনার উবুন্টু, সেন্টোস বা ডেবিয়ান সার্ভারে এনগিনেক্স ইনস্টল করেছেন।

বিপরীত প্রক্সি হিসাবে Nginx ব্যবহার করা

এইচটিটিপি সার্ভারের বিপরীত প্রক্সি হিসাবে এনগিনেক্সকে কনফিগার করতে, ডোমেনের সার্ভার ব্লক কনফিগারেশন ফাইলটি খুলুন এবং এর ভিতরে একটি অবস্থান এবং একটি প্রক্সি সার্ভার নির্দিষ্ট করুন:

server { listen 80; server_name www.example.com example.com; location /app { proxy_pass http://127.0.0.1:8080; } }

প্রক্সি সার্ভার URL টি proxy_pass নির্দেশিকা ব্যবহার করে সেট করা হয়েছে এবং HTTP বা HTTPS প্রোটোকল, ডোমেন নাম বা আইপি ঠিকানা হিসাবে এবং একটি proxy_pass বন্দর এবং ইউআরআই হিসাবে ঠিকানা হিসাবে ব্যবহার করতে পারে।

উপরের কনফিগারেশনটি Nginx কে http://127.0.0.1:8080 http://127.0.0.1:8080 সার্ভারে সমস্ত /app পাস করার জন্য বলে।

উবুন্টু এবং ডেবিয়ান ভিত্তিক বিতরণগুলিতে, সার্ভার ব্লক ফাইলগুলি /etc/nginx/sites-available ডিরেক্টরিতে সঞ্চিত থাকে, যখন /etc/nginx/conf.d ডিরেক্টরিতে CentOS এ /etc/nginx/conf.d

location এবং proxy_pass নির্দেশিকা কীভাবে কাজ করে তা আরও ভালভাবে বর্ণনা করার জন্য, আসুন নিম্নলিখিত উদাহরণটি গ্রহণ করুন:

server { listen 80; server_name www.example.com example.com; location /blog { proxy_pass http://node1.com:8000/wordpress/; } }

যদি কোনও ভিজিটর http://example.com/blog/my-post অ্যাক্সেস করে তবে Nginx এই অনুরোধটি http://node1.com:8000/wordpress/my-post প্রক্সি করবে।

যখন প্রক্সিড সার্ভারের ঠিকানাটিতে একটি ইউআরআই থাকে, ( /wordpress/ ) থাকে, তখন প্রক্সাইড সার্ভারে প্রেরিত ইউআরআই অনুরোধটি নির্দেশে নির্দিষ্ট ইউআরআই দ্বারা প্রতিস্থাপিত হয়। যদি প্রক্সড সার্ভারের ঠিকানা কোনও ইউআরআই ছাড়াই নির্দিষ্ট করা থাকে তবে সম্পূর্ণ অনুরোধ ইউআরআই প্রক্সাইড সার্ভারে প্রেরণ করা হয়।

অনুরোধ শিরোনাম পাস হচ্ছে

যখন এনগিনেক্স একটি অনুরোধের প্রক্স করে, তখন এটি স্বয়ংক্রিয়ভাবে ক্লায়েন্ট, Host এবং Connection থেকে প্রক্সাইড অনুরোধে দুটি শিরোলেখ ক্ষেত্র সংজ্ঞা দেয় এবং খালি শিরোনামগুলি সরিয়ে দেয়। $proxy_host ভেরিয়েবলে সেট করা আছে এবং Connection সেট করতে সেট করা হয়েছে।

প্রক্সি সংযোগগুলির জন্য শিরোলেখগুলি সামঞ্জস্য করতে বা সেট করতে, শিরোনামের মান অনুসরণ করে proxy_set_header নির্দেশিকা ব্যবহার করুন। আপনি এখানে সমস্ত উপলব্ধ অনুরোধ শিরোনাম এবং তাদের অনুমোদিত মানগুলির একটি তালিকা পেতে পারেন। যদি আপনি কোনও শিরোনামকে প্রক্সিড সার্ভারে প্রেরণ করা থেকে বিরত করতে চান তবে এটিকে একটি খালি স্ট্রিংয়ে সেট করুন।

নিম্নলিখিত উদাহরণে, আমরা Host শিরোলেখের ক্ষেত্রের মানটি $host এবং Accept-Encoding শিরোনাম ক্ষেত্রটির মানটি খালি স্ট্রিংয়ে সেট করে সরিয়ে দিচ্ছি।

location / { proxy_set_header Host $host; proxy_set_header Accept-Encoding ""; proxy_pass http://localhost:3000; }

আপনি যখনই কনফিগারেশন ফাইলটি পরিবর্তন করেন, পরিবর্তনগুলি কার্যকর করতে আপনাকে Nginx পরিষেবাটি পুনরায় চালু করতে হবে।

কোনও এনটিএইচটিপি প্রক্সাইড সার্ভারে বিপরীত প্রক্সি হিসাবে Nginx কনফিগার করা

একটি নন-এইচটিটিপি প্রক্সিড সার্ভারে বিপরীত প্রক্সি হিসাবে Nginx কনফিগার করতে, আপনি নিম্নলিখিত নির্দেশাবলী ব্যবহার করতে পারেন:

  • fastcgi_pass - একটি fastcgi_pass সার্ভারে প্রক্সি বিপরীত করুন। uwsgi_pass - একটি uwsgi সার্ভারে প্রক্সি বিপরীত করুন। scgi_pass - একটি এসসিজিআই সার্ভারে প্রক্সি বিপরীত করুন। memcached_pass - একটি মেমক্যাড সার্ভারে প্রক্সি বিপরীত করুন।

সর্বাধিক সাধারণ উদাহরণগুলির মধ্যে একটি হ'ল এনগিনেক্সকে পিএইচপি-এফপিএমের বিপরীত প্রক্সি হিসাবে ব্যবহার করা:

server { #… other directives location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.2-fpm.sock; } }

সাধারণ এনগিনেক্স বিপরীত প্রক্সি বিকল্পগুলি

এইচটিটিপিএস-এর মাধ্যমে সামগ্রী পরিবেশন করা আজকাল একটি মান হয়ে দাঁড়িয়েছে। এই বিভাগে, আমরা আপনাকে প্রস্তাবিত এনগিনেক্স প্রক্সি পরামিতি এবং শিরোনাম সহ HTTPS Nginx বিপরীত প্রক্সি কনফিগারেশনের একটি উদাহরণ দেব।

location/ { proxy_pass http://127.0.0.1:3000; proxy_http_version 1.1; proxy_cache_bypass $http_upgrade; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Port $server_port; }

  • proxy_http_version 1.1 - proxy_http_version 1.1 জন্য এইচটিটিপি প্রোটোকল সংস্করণ সংজ্ঞায়িত করে, ডিফল্টরূপে এটি 1.0 এ সেট করে। ওয়েবসকেট এবং keepalive সংযোগগুলির জন্য আপনাকে সংস্করণ 1.1 ব্যবহার করতে হবে। proxy_cache_bypass $http_upgrade - এমন শর্ত নির্ধারণ করে যার অধীনে ক্যাশে থেকে প্রতিক্রিয়া নেওয়া হবে না। Upgrade $http_upgrade এবং Connection "upgrade" - আপনার অ্যাপ্লিকেশন ওয়েবসাইটসকেট ব্যবহার করে থাকলে এই শিরোলেখ ক্ষেত্রগুলির প্রয়োজন। Host $host - নিম্নলিখিত ced $host ভেরিয়েবলের নিম্নোক্ত ক্রমের মধ্যে রয়েছে: অনুরোধ লাইন থেকে হোস্টনাম, বা হোস্ট অনুরোধ শিরোনাম ক্ষেত্রের হোস্টনাম, বা কোনও অনুরোধের সাথে মিল থাকা সার্ভার নাম। X-Real-IP $remote_addr - প্রক্সি ভিজিটর রিমোট আইপি অ্যাড্রেসকে X-Real-IP $remote_addr সার্ভারে ফরোয়ার্ড করে। X-Forwarded-For $proxy_add_x_forwarded_for - ক্লায়েন্টের প্রতিটি সার্ভারের আইপি অ্যাড্রেস সম্বলিত একটি তালিকা X-Forwarded-For $proxy_add_x_forwarded_for করা হয়েছে। X-Forwarded-Proto $scheme - যখন এইচটিটিপিএস সার্ভার ব্লকের ভিতরে ব্যবহার করা হয়, তখন প্রক্সিড সার্ভারের প্রতিটি HTTP প্রতিক্রিয়া HTTPS এ আবার লেখা হয় rit X-Forwarded-Host $host - ক্লায়েন্ট দ্বারা অনুরোধ করা মূল হোস্টটি নির্ধারণ করে। X-Forwarded-Port $server_port - ক্লায়েন্টের দ্বারা অনুরোধ করা মূল পোর্টটি সংজ্ঞায়িত করে।

উপসংহার

আপনি বিপরীত প্রক্সি হিসাবে Nginx কীভাবে ব্যবহার করবেন তা শিখেছেন। আমরা আপনাকে দেখিয়েছি কীভাবে সার্ভারে অতিরিক্ত পরামিতিগুলি পাস করতে হয় এবং প্রক্সাইড অনুরোধে বিভিন্ন শিরোনাম ক্ষেত্রকে সংশোধন ও সেট করতে হয়।

nginx