এনগিনেক্স এবং জিজিপ মডিউল ব্যবহার করে কীভাবে ওয়েবসাইটগুলিকে গতি বাড়ানো যায় তা শিখুন


এমনকি এমন এক সময়ে যখন উল্লেখযোগ্য ইন্টারনেটের গতি বিশ্বজুড়ে উপলব্ধ, ওয়েবসাইটের লোড টাইমকে অনুকূল করে তোলার প্রতিটি প্রচেষ্টা উন্মুক্ত অস্ত্রের সাথে স্বাগত।

এই নিবন্ধে আমরা সংক্ষেপণের মাধ্যমে ফাইলের আকার হ্রাস করে ট্রান্সফার গতি বাড়ানোর একটি পদ্ধতি নিয়ে আলোচনা করব। এই পদ্ধতির অতিরিক্ত উপকার এনেছে যে এটি প্রক্রিয়াতে ব্যবহৃত ব্যান্ডউইথের পরিমাণও হ্রাস করে এবং ওয়েবসাইটের মালিকের জন্য এটি সস্তা দেয় যে এটির জন্য অর্থ প্রদান করে।

উপরের অনুচ্ছেদে বর্ণিত লক্ষ্য অর্জনের জন্য, আমরা এই নিবন্ধে Nginx এবং এর বিল্ট-ইন gzip মডিউলটি ব্যবহার করব। অফিসিয়াল ডকুমেন্টেশন হিসাবে বলা হয়েছে, এই মডিউলটি এমন একটি ফিল্টার যা সুপরিচিত gzip সংক্ষেপণ পদ্ধতিটি ব্যবহার করে প্রতিক্রিয়াগুলিকে সঙ্কুচিত করে। এটি নিশ্চিত করে যে সঞ্চারিত তথ্যের আকার অর্ধেক বা তারও বেশি সংকুচিত হবে।

আপনি যখন এই পোস্টের নীচে পৌঁছেছেন, তখন আপনার নিজের ওয়েবসাইট এবং অ্যাপ্লিকেশনগুলি পরিবেশন করার জন্য Nginx ব্যবহার করার বিবেচনা করার আরও একটি কারণ রয়েছে।

এনগিনেক্স ওয়েব সার্ভার ইনস্টল করা হচ্ছে

Nginx সমস্ত বড় আধুনিক বিতরণের জন্য উপলব্ধ। যদিও আমরা এই নিবন্ধটির জন্য CentOS 7 ভার্চুয়াল মেশিন (আইপি 192.168.0.29) ব্যবহার করব।

নীচে প্রদত্ত নির্দেশাবলী অন্যান্য বিতরণেও সামান্য (যদি থাকে) পরিবর্তনগুলি নিয়ে কাজ করবে। ধারণা করা হয় যে আপনার ভিএম একটি নতুন ইনস্টল; অন্যথায়, আপনাকে নিশ্চিত করতে হবে যে আপনার মেশিনে অন্য কোনও ওয়েব সার্ভার (যেমন অ্যাপাচি) চলছে না।

Nginx এর প্রয়োজনীয় নির্ভরতা সহ ইনস্টল করতে, নিম্নলিখিত কমান্ডটি ব্যবহার করুন:

----------- On CentOS/RHEL 7 and Fedora 22-24 ----------- 
# yum update && yum install nginx

----------- On Debian and Ubuntu Distributions ----------- 
# apt update && apt install nginx

ইনস্টলেশনটি সফলভাবে শেষ হয়েছে এবং এনগিনেক্স ফাইল সরবরাহ করতে পারে তা যাচাই করতে, ওয়েব সার্ভারটি শুরু করুন:

# systemctl start nginx
# systemctl enable nginx

এবং তারপরে একটি ওয়েব ব্রাউজারটি খুলুন এবং http://192.168.0.29 এ যান (আপনার সার্ভারের আইপি ঠিকানা বা হোস্টনামের সাথে 192.168.0.29 প্রতিস্থাপন করতে ভুলবেন না)। আপনাকে স্বাগতম পৃষ্ঠাটি দেখতে হবে:

আমাদের অবশ্যই মনে রাখতে হবে যে কিছু ফাইলের প্রকারগুলি অন্যদের চেয়ে ভালভাবে সংকোচিত হতে পারে। সরল পাঠ্য ফাইলগুলি (যেমন এইচটিএমএল, সিএসএস এবং জাভাস্ক্রিপ্ট ফাইলগুলি) খুব ভালভাবে সংকুচিত হয় যখন অন্যরা (.iso ফাইল, টারবাল এবং চিত্রগুলি নাম রাখে) না দেয়, কারণ তারা প্রকৃতির দ্বারা ইতিমধ্যে সংকুচিত হয়েছে।

সুতরাং, এটি প্রত্যাশিত যে Nginx এবং gzip এর সংমিশ্রণটি আমাদের প্রাক্তনদের স্থানান্তর গতি বাড়িয়ে তুলতে সক্ষম করবে, যদিও পরবর্তীকালে সামান্য বা কোনও উন্নতি দেখাতে পারে।

এ কথাও মনে রাখা জরুরী যে যখন জিজিপ মডিউল সক্ষম থাকে তখন HTML ফাইলগুলি সর্বদা সংকুচিত হয় তবে সাধারণত ওয়েবসাইট এবং অ্যাপ্লিকেশনগুলিতে (যেমন, সিএসএস এবং জাভাস্ক্রিপ্ট) পাওয়া যায় এমন অন্যান্য ফাইল প্রকারগুলি নয়।

জিজিপ মডিউল ব্যতীত এনগিনেক্স ওয়েবসাইটের গতি পরীক্ষা করে

শুরু করতে, আসুন একটি সম্পূর্ণ বুটস্ট্র্যাপ টেম্পলেট, এইচটিএমএল, সিএসএস এবং জাভাস্ক্রিপ্ট ফাইলগুলির দুর্দান্ত সংমিশ্রণটি ডাউনলোড করি।

সংক্ষিপ্ত ফাইলটি ডাউনলোড করার পরে, আমরা এটিকে আমাদের সার্ভার ব্লকের মূল ডিরেক্টরিতে আনজিপ করব (মনে রাখবেন যে এটি অ্যাপাচি ভার্চুয়াল হোস্ট ঘোষণায় ডকুমেন্টরুট নির্দেশকের Nginx সমতুল্য):

# cd /var/www/html
# wget https://github.com/BlackrockDigital/startbootstrap-creative/archive/gh-pages.zip
# unzip -a gh-pages.zip
# mv startbootstrap-creative-gh-pages tecmint

/var/www/html/tecmint এর মধ্যে আপনার নিম্নলিখিত ডিরেক্টরি কাঠামো থাকতে হবে:

# ls -l /var/www/html/tecmint

এখন http://192.168.0.29/tecmint এ যান এবং পৃষ্ঠাটি সঠিকভাবে লোড হয়েছে তা নিশ্চিত করুন। বেশিরভাগ আধুনিক ব্রাউজারে বিকাশকারী সরঞ্জামগুলির একটি সেট অন্তর্ভুক্ত থাকে। ফায়ারফক্সে, আপনি এটিকে সরঞ্জামসমূহ → ওয়েব বিকাশকারী মেনু দিয়ে খুলতে পারেন।

আমরা বিশেষত নেটওয়ার্ক সাবমেনুতে আগ্রহী, যা আমাদের কম্পিউটার এবং স্থানীয় নেটওয়ার্ক এবং ইন্টারনেটের মধ্যে চলমান সমস্ত নেটওয়ার্ক অনুরোধগুলি পর্যবেক্ষণ করতে দেয়।

বিকাশকারী সরঞ্জামগুলিতে নেটওয়ার্ক মেনু খোলার একটি শর্টকাট হ'ল Ctrl + Shift + Q c কীটি সংমিশ্রণটি টিপুন বা মেনু বারটি এটি খুলতে ব্যবহার করুন।

যেহেতু আমরা এইচটিএমএল, সিএসএস এবং জাভাস্ক্রিপ্ট ফাইলগুলির স্থানান্তর পরীক্ষা করতে আগ্রহী তাই নীচের বোতামগুলিতে ক্লিক করুন এবং পৃষ্ঠাটি রিফ্রেশ করুন। মূল স্ক্রিনে আপনি সমস্ত এইচটিএমএল, সিএসএস এবং জাভাস্ক্রিপ্ট ফাইল স্থানান্তর করার বিশদটি দেখতে পাবেন:

আকার কলামের ডানদিকে (যা পৃথক ফাইলের আকার দেখায়) আপনি স্বতন্ত্র স্থানান্তরের সময় দেখতে পাবেন। সময়গুলি ট্যাবে আরও বিশদ দেখতে আপনি যে কোনও ফাইলটিতে ডাবল ক্লিক করতে পারেন।

উপরের চিত্রটিতে প্রদর্শিত সময়ের নোটগুলি নিশ্চিত করে নিন যাতে আপনি জিজেপ মডিউল সক্ষম করে নিলে আপনি একই স্থানান্তরটির সাথে তাদের তুলনা করতে পারেন।

এনজিএনএক্সে জিজিপ মডিউল সক্ষম ও কনফিগার করছে

জিজিপ মডিউল সক্ষম ও কনফিগার করতে /etc/nginx/nginx.conf খুলুন, নীচের চিত্রের মতো প্রদর্শিত প্রধান সার্ভার ব্লকটি সনাক্ত করুন এবং নিম্নলিখিত লাইনগুলি যুক্ত বা সংশোধন করুন (ভুলে যাবেন না সেমিকোলন শেষে বা Nginx পরে পুনরায় আরম্ভ করার সময় একটি ত্রুটি বার্তা ফিরে আসবে!)

root     	/var/www/html;
gzip on;
gzip_types text/plain image/jpeg image/png text/css text/javascript;

Gzip নির্দেশিকাটি gzip মডিউলটি চালু বা বন্ধ করে দেয়, যেখানে gzip_tyype মডিউলটি পরিচালনা করতে হবে এমন সমস্ত MIME ধরণের তালিকা তৈরি করতে ব্যবহৃত হয়।

এমআইএমআই টাইপ সম্পর্কে আরও জানতে এবং উপলভ্য প্রকারগুলি দেখতে, বেসিক_স_এইচটিটিপি_মিমE_ টাইপগুলিতে যান।

জিগিপ সংক্ষেপণ মডিউল সহ এনগিনেক্স ওয়েবসাইটের গতি পরীক্ষা করা

আমরা উপরের পদক্ষেপগুলি সম্পন্ন করার পরে, এনগিনেক্স পুনরায় চালু করুন এবং Ctrl + F5 টিপে পৃষ্ঠাটি পুনরায় লোড করুন (আবার এটি ফায়ারফক্সে কাজ করে, তাই যদি আপনি অন্য কোনও ব্রাউজার ব্যবহার করেন তবে সংশ্লিষ্ট ডকুমেন্টেশনের সাথে পরামর্শ করুন) ক্যাশে ওভাররাইড করতে এবং আসুন স্থানান্তর সময়গুলি পর্যবেক্ষণ করুন:

# systemctl restart nginx

নেটওয়ার্ক অনুরোধ ট্যাব কিছু উল্লেখযোগ্য উন্নতি দেখায়। এটি আমাদের কম্পিউটার এবং 192.168.0.29 (গুগল সার্ভার এবং সিডিএন এর মধ্যে স্থানান্তরগুলি আমাদের উপলব্ধি ছাড়িয়ে যায়) এর মধ্যে স্থানান্তর তা মনে রেখে নিজের জন্য দেখার সময়গুলির সাথে তুলনা করুন:

উদাহরণস্বরূপ, gzip সক্ষম করার আগে/পরে নিম্নলিখিত ফাইল স্থানান্তর উদাহরণগুলি বিবেচনা করা যাক। সময় মিলিসেকেন্ডে দেওয়া হয়:

  1. index.html (তালিকার শীর্ষে /tecmint/ দ্বারা উপস্থাপিত): 15/4
  2. Creative.min.css : 18/8
  3. jquery.min.js : 17/7

এটি আপনাকে Nginx আরও বেশি ভালবাসে না? যতদূর আমি উদ্বিগ্ন, এটি করে!

সারসংক্ষেপ

এই নিবন্ধে আমরা প্রমাণ করেছি যে আপনি ফাইল স্থানান্তর দ্রুত করতে Nginx gzip মডিউলটি ব্যবহার করতে পারেন। জিজিপ মডিউলের জন্য অফিসিয়াল ডকুমেন্টেশনগুলি অন্যান্য কনফিগারেশন নির্দেশকে তালিকাবদ্ধ করে যা আপনি একবার দেখতে চাইতে পারেন।

অতিরিক্তভাবে, মোজিলা বিকাশকারী নেটওয়ার্ক ওয়েবসাইটটিতে নেটওয়ার্ক মনিটর সম্পর্কে একটি এন্ট্রি রয়েছে যা একটি নেটওয়ার্ক অনুরোধে পর্দার আড়ালে কী চলছে তা বোঝার জন্য এই সরঞ্জামটি কীভাবে ব্যবহার করবেন তা ব্যাখ্যা করে।

বরাবরের মতো, নীচের মন্তব্য ফর্মটি ব্যবহার করতে নির্দ্বিধায় যদি এই নিবন্ধটি সম্পর্কে আপনার কোনও প্রশ্ন থাকে। আমরা সবসময় আপনার কাছ থেকে শুনার জন্য অপেক্ষা করছি!