উবুন্টু 20.04 LTS-এ Nginx কীভাবে ইনস্টল করবেন

একটি উবুন্টু 20.04 সিস্টেমে একটি Nginx ওয়েব সার্ভার ইনস্টল এবং সেট আপ করার জন্য সম্পূর্ণ ধাপে ধাপে নির্দেশিকা

Nginx একটি ওপেন সোর্স এবং জনপ্রিয় বিপরীত প্রক্সি ওয়েব সার্ভার একাধিক প্ল্যাটফর্মে উপলব্ধ। সফটওয়্যারটি তৈরি করেছে ইগর সিসোয়েভ C10K সমস্যার সমাধান হিসাবে এবং 2004 সালে প্রথম প্রকাশিত হয়েছিল। C10K সমস্যা হল এক সাথে দশ হাজার ক্লায়েন্টকে পরিচালনা করার সমস্যা যা 2000 এর দশকের প্রথম দিকে খুব সহজ ছিল না।

এই টিউটোরিয়ালে, আমরা উবুন্টু 20.04 LTS-এ Nginx কিভাবে ইনস্টল এবং সেট আপ করতে হয় তা দেখছি।

পূর্বশর্ত

উবুন্টু 20.04 ইনস্টল করা একটি সিস্টেম এবং একটি sudo ব্যবহারকারী উপরন্তু, পোর্ট 80 বা 443 এ চলমান Apache এর মতো আপনার অন্য কোনো ওয়েব সার্ভার থাকতে হবে না।

Nginx ইনস্টল করা হচ্ছে

Nginx উবুন্টু 20.04 সংগ্রহস্থলে উপলব্ধ উপযুক্ত প্যাকেজ ম্যানেজার এটি ইনস্টল করতে ব্যবহার করা যেতে পারে। সুতরাং, Nginx ইনস্টল করতে ব্যবহার করে টার্মিনাল খুলুন ctrl+alt+t এবং চালান:

sudo apt আপডেট && sudo apt nginx ইনস্টল করুন

ইনস্টলেশন শীঘ্রই সম্পূর্ণ হবে এবং Nginx ডেমন স্বয়ংক্রিয়ভাবে পটভূমিতে শুরু হবে। সুতরাং, Nginx এর স্থিতি পরীক্ষা করতে, চালান:

sudo systemctl অবস্থা nginx

উপরের কমান্ডটি চালানোর পরে আপনি Nginx স্থিতি পেতে হবে সক্রিয় (চলমান) নীচের হিসাবে সবুজ.

উবুন্টু ফায়ারওয়াল কনফিগার করা হচ্ছে (UFW)

ডিফল্টরূপে, বহির্গামী পোর্ট HTTP (80) এবং HTTPS (443) উবুন্টু 20.04 এ বন্ধ রয়েছে। অতিরিক্তভাবে, ডিফল্ট ফায়ারওয়াল ডেমন ufw সমস্ত পোর্ট বন্ধ থাকায় নিষ্ক্রিয় করা হয়েছে।

সুতরাং, অন্যান্য সিস্টেম থেকে Nginx সার্ভার অ্যাক্সেস করতে, আপনাকে সক্ষম করতে হবে ufw এবং পোর্টে ট্র্যাফিকের অনুমতি দেওয়ার জন্য এটি সঠিকভাবে সেট আপ করুন 80 এবং 443. আপনি সক্ষম করার আগে ufw, জেনে রাখুন যে আপনি যদি রিমোট সার্ভারে Nginx সেট আপ করেন তবে প্রথমে আপডেট করুন ufw অনুমতি দেওয়ার নিয়ম ssh চালানোর মাধ্যমে:

sudo ufw অনুমতি ssh

উপরের কমান্ড অনুমতি দেয় ssh রিমোট সার্ভারে অ্যাক্সেস, অনুমতি ছাড়াই ssh আপনি দূরবর্তী সার্ভার থেকে লক আউট করা হবে.

সক্রিয় করার পর ssh অ্যাক্সেস, আপনি সক্ষম করতে পারেন ufw চালানোর মাধ্যমে ফায়ারওয়াল ডেমন:

sudo ufw সক্ষম করুন

এখন, আপনাকে HTTP এবং HTTPS পোর্টগুলিকে অনুমতি দেওয়ার জন্য ফায়ারওয়াল নিয়মগুলি পরিবর্তন করতে হবে যাতে Nginx ওয়েব ট্র্যাফিক পরিবেশন করতে পারে। নিয়ম পরিবর্তন করতে, চালান:

sudo ufw 'Nginx ফুল' অনুমতি দেয়

Nginx পূর্ণ সমস্ত IP ঠিকানা থেকে ইনকামিং এবং আউটগোয়িং ট্র্যাফিকের জন্য HTTP এবং HTTPS উভয় পোর্টকে অনুমতি দেয়।

এর পরে, নিয়মগুলি সঠিকভাবে যোগ করা হয়েছে কিনা তা যাচাই করুন ufw কমান্ড চালানোর মাধ্যমে ফায়ারওয়াল:

sudo ufw স্ট্যাটাস

উপরের কমান্ডটি আমাদের যোগ করা নিয়মগুলিকে আউটপুট করবে ufw ফায়ারওয়াল ডেমন।

Nginx সার্ভারের সাথে সংযোগ করা হচ্ছে

এখন আমরা Nginx ইনস্টল করেছি এবং কনফিগার করেছি ufw ইনকামিং HTTP এবং HTTPS ওয়েব ট্র্যাফিকের অনুমতি দিতে, আপনি সার্ভারের IP ঠিকানা ব্যবহার করে Nginx সার্ভার অ্যাক্সেস করতে সক্ষম হবেন।

আপনি যদি সার্ভারের আইপি ঠিকানা না জানেন, তাহলে সহজেই এটি পুনরুদ্ধার করতে নীচের কমান্ডটি ব্যবহার করুন।

ip addr দেখান eth0 | grep inet | awk '{ প্রিন্ট $2; }' | sed 's/\/.*$//'

একবার আপনি আইপি ঠিকানা পেয়ে গেলে, এটি আপনার ব্রাউজারে পেস্ট করুন এবং এন্টার টিপুন।

//আপনার-সার্ভার-আইপি

সবকিছু সঠিকভাবে কনফিগার করা থাকলে, আপনি 'nginx-এ স্বাগতম!' ওয়েবপৃষ্ঠাটি দেখতে সক্ষম হবেন।

Nginx ফাইল এবং ডিরেক্টরি

এখন যেহেতু আমরা Nginx ইনস্টল করেছি এবং আপনার সার্ভারে চলছে। আসুন আমরা কিছু গুরুত্বপূর্ণ Nginx ফাইল এবং ডিরেক্টরির দিকে নজর দেই যা আপনাকে আপনার ওয়েবসাইট/ওয়েব অ্যাপ কনফিগার করতে ব্যবহার করতে হবে।

ওয়েব সার্ভার সামগ্রী

আপনি আপনার সার্ভার ব্লকের জন্য আপনার রুট ডিরেক্টরি হতে চান এমন যেকোনো অবস্থান কনফিগার করতে পারেন। Nginx এর ডিফল্ট HTML সরাসরি /var/www/html, যেখানে আমরা আগে অ্যাক্সেস করেছি সেই 'স্বাগত' পৃষ্ঠাটি অবস্থিত।

অন্যান্য অবস্থান যা সাধারণত ডোমেনের জন্য রুট ডিরেক্টরি হিসাবে ব্যবহৃত হয়:

  • /বাড়ি//
  • /var/www/html/
  • /অপট/

Nginx কনফিগারেশন ফাইল

সমস্ত Nginx কনফিগারেশন ফাইল অবস্থিত /etc/nginx ডিরেক্টরি একটি মৌলিক ডোমেইন সেট আপ করার জন্য আমাদের প্রয়োজনীয় কিছু গুরুত্বপূর্ণ ফাইলের দিকে নজর দেওয়া যাক।

  • /etc/nginx/nginx.conf: Nginx চালানোর জন্য প্রয়োজনীয় সমস্ত কনফিগারেশন এই ফাইলটিতে রয়েছে।
  • /etc/nginx/sites-available/: এই ডিরেক্টরিতে ডোমেনের সমস্ত সার্ভার ব্লক কনফিগারেশন রয়েছে, কিন্তু বর্তমানে সক্রিয়/নিয়োজিত নেই এবং ক্লায়েন্টদের দ্বারা অ্যাক্সেসযোগ্য নয়।
  • /etc/nginx/sites-enabled/: এই ডিরেক্টরিতে বর্তমানে সক্রিয়/সক্ষম ডোমেন রয়েছে যা ক্লায়েন্টদের দ্বারা অ্যাক্সেসযোগ্য। একটি ডোমেইন সক্ষম করার জন্য আমাদের ডোমেন কনফিগারেশন ফাইলটি লিঙ্ক করতে হবে সাইট- উপলব্ধ থেকে সাইট-সক্ষম ডিরেক্টরি
  • /etc/nginx/snippets/: এই ডিরেক্টরিতে, আমরা কনফিগারেশনের সম্ভাব্য পুনঃব্যবহারযোগ্য অংশগুলি সংরক্ষণ করতে পারি। এটি কনফিগারেশনের সেগমেন্ট/ব্লকগুলিকে পুনরায় ব্যবহারযোগ্য করে তুলতে পারে এই কারণে এটি উত্পাদন পরিবেশে অনেক সময় সাশ্রয় করে।

সার্ভার লগ

Nginx ইভেন্ট/ক্রিয়াকলাপগুলি লগ করে এবং লগ ফাইলগুলিতে সঞ্চয় করে /var/log/nginx ডিরেক্টরি Nginx এই ফাইলগুলিতে ক্রিয়াকলাপগুলি লগ করে:

  • /var/log/nginx/access.log: এই ফাইলটি সেই ক্লায়েন্টদের লগ করে যারা Nginx সার্ভার অ্যাক্সেস করেছে। বিশদ বিবরণের মধ্যে ক্লায়েন্টের আইপি ঠিকানা, সময় এবং তারিখ, সার্ভার এবং ওএস অ্যাক্সেস করতে ব্যবহৃত ব্রাউজার অন্তর্ভুক্ত।
  • /var/log/nginx/error.log: এই ফাইলটি চালানোর সময় Nginx সার্ভার দ্বারা সম্মুখীন ত্রুটিগুলি লগ করে৷

সুতরাং, এই বিভাগে, আমরা সংক্ষেপে কিছু গুরুত্বপূর্ণ Nginx ফাইল এবং ডিরেক্টরি দেখেছি যা শুরু করার জন্য যথেষ্ট।

সার্ভার ব্লক সেট আপ করা হচ্ছে

এখন যেহেতু আমাদের Nginx ফাইল এবং সার্ভার সম্পর্কে কিছু প্রাথমিক জ্ঞান আছে, আমরা আমাদের নিজস্ব সার্ভার ব্লক সেট আপ করতে প্রস্তুত। সার্ভার ব্লকগুলি Apache ভার্চুয়াল হোস্টের অনুরূপ।

আমরা দেখব কিভাবে একটি সার্ভার ব্লক তৈরি করতে হয় এবং প্রদর্শন করতে আমরা ব্যবহার করব example.com সৃষ্টি প্রক্রিয়ায় ডোমেন হিসাবে।

💡 প্রতিস্থাপন করুন example.com আপনার ডোমেইন নামের সাথে.

আমরা সার্ভার ব্লক কনফিগার করা শুরু করার আগে, ওয়েবসাইট বিষয়বস্তুর জন্য রুট ডিরেক্টরি হিসাবে পরিবেশন করার জন্য আমাদের একটি ডিরেক্টরি তৈরি করতে হবে। আসুন তৈরি করি /var/www/example.com/html ডোমেইন ব্যবহারের জন্য ডিরেক্টরি mkdir আদেশ

sudo mkdir -p /var/www/example.com/html

দ্য -পি বিকল্পটি প্রয়োজনীয় সমস্ত প্যারেন্ট ডিরেক্টরি তৈরি করবে। অর্থাৎ সৃষ্টি করবে example.com একটি অভিভাবক ডিরেক্টরি html যদি এটি বিদ্যমান না থাকে।

এর সাথে ডিরেক্টরির মালিকানা পরিবর্তন করুন $USER পরিবেশ সূচক:

sudo chown -R $USER:$USER /var/www/example.com/html

এর পরে, একটি সাধারণ তৈরি করুন index.html আপনি কনফিগার করা ডোমেন পরিদর্শন করার সময় যে ফাইলটি অ্যাক্সেস করা হবে। এটি শুধুমাত্র ব্যাখ্যামূলক উদ্দেশ্যে।

ন্যানো /var/www/example.com/html/index.html

আমরা এইমাত্র সার্ভারে যে ফাইলটি তৈরি করেছি তাতে নিম্নলিখিত বিষয়বস্তু পেস্ট করুন।

  example.com এ স্বাগতম! 

ইয়ো! উদাহরণ ডট কম অ্যাক্সেসযোগ্য!

প্রেস করুন ctrl+o লিখতে এবং সংরক্ষণ করতে index.html ফাইল এবং তারপর, টিপুন ctrl+x প্রস্থান করা ন্যানো সম্পাদক

এখন অবশেষে আমরা একটি সার্ভার ব্লক তৈরি করতে পারি, যাতে Nginx পরিবেশন করতে পারে index.html যখন কিছু ব্যবহারকারী যায় example.com. তাই একটি সার্ভার ব্লক তৈরি করতে আমাদের নামের একটি কনফিগারেশন ফাইল তৈরি করতে হবে example.com ভিতরে সাইট- উপলব্ধ ডিরেক্টরি এটি করতে, আমরা ন্যানো ব্যবহার করি এবং রান করি:

sudo nano /etc/nginx/sites-available/example.com

এবং তারপর, নিম্নলিখিত কনফিগারেশনটি টাইপ করুন বা অনুলিপি/পেস্ট করুন। তারপর চাপুন ctrl+o এবং লিখতে এবং সংরক্ষণ করতে প্রবেশ করুন। একইভাবে, টিপুন ctrl+x ন্যানো সম্পাদক বন্ধ করতে।

সার্ভার { শুনুন 80; শুনুন [::]:80; server_name example.com www.example.com; root /var/www/example-domain.com/html; index index.html; অবস্থান / { try_files $uri $uri/ =404; } }

উপরের কনফিগারেশনটি ডিফল্ট সার্ভার ব্লক কনফিগারেশনের অনুরূপ, আমরা পরিবর্তন করেছি মূল বিবৃতি আমাদের নতুন রুট ডিরেক্টরিতে নির্দেশ করে এবং পরিবর্তন করে সার্ভার নাম আমাদের ডোমেইন নামে। যখন অবস্থান{} বিবৃতিটি ত্রুটি ধরার বিবৃতি হিসাবে কাজ করে যদি ফাইলগুলি না পাওয়া যায় এবং ক্লায়েন্টকে ত্রুটি 404 প্রদর্শন করে।

পরবর্তী, আমরা আমাদের সার্ভার ব্লক সক্ষম করতে পারি যাতে Nginx পরিবেশন করতে পারে example.com ওয়েব পেজ. আমাদের সার্ভার ব্লক সক্রিয় করতে আমাদের একটি সিমলিঙ্ক তৈরি করতে হবে example.com থেকে ফাইল সাইট- উপলব্ধ প্রতি সাইট-সক্ষম ডিরেক্টরি এটি করতে, চালান:

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled

একটি লিঙ্ক তৈরি করা হবে সাইট-সক্ষম ডিরেক্টরি এবং এখন example.com সক্রিয় করা উচিত। এখন আমাদের Nginx সার্ভারে দুটি সার্ভার ব্লক সক্রিয় করা আছে যা অনুরোধের ভিত্তিতে প্রতিক্রিয়া জানাবে শুনুন এবং sever_name নির্দেশাবলী সংরক্ষিত example.com সার্ভার ব্লক কনফিগারেশন।

সমস্ত কনফিগারেশন ফাইল সঠিক কিনা এবং কোন সিনট্যাক্স ত্রুটি উপস্থিত নেই কিনা তা পরীক্ষা করতে, চালান:

sudo nginx -t

এখন, অবশেষে নিম্নলিখিত কমান্ডটি চালিয়ে পরিবর্তনগুলি প্রয়োগ করতে Nginx পুনরায় চালু করুন:

sudo systemctl nginx পুনরায় চালু করুন

Nginx এখন আপনার সার্ভার ব্লক পরিবেশন করা শুরু করবে, আপনি যেতে পারেন //আপনার-ডোমেইন-নাম এবং আপনার ওয়েবপৃষ্ঠা লাইভ দেখুন।

বিঃদ্রঃ: উপরের বিভাগটি কাজ করার জন্য আপনাকে আপনার নিজের ডোমেন সেট আপ করতে হবে এবং প্রতিস্থাপন করতে হবে example.com আপনার নিজের ডোমেইন নামের সাথে। এছাড়াও, আপনাকে আপনার Nginx সার্ভারের IP ঠিকানা নির্দেশ করতে আপনার ডোমেনের জন্য DNS কনফিগার করতে হবে।

উপসংহারে, আমরা কীভাবে Nginx ইনস্টল করতে হয়, কনফিগার করতে হয় তা দেখেছি ufw Nginx সার্ভারে দূরবর্তী অ্যাক্সেসের অনুমতি দেওয়ার জন্য, Nginx এর সাথে দূরবর্তীভাবে সংযুক্ত, কিছু মৌলিক Nginx ফাইল এবং ডিরেক্টরিগুলির সাথে পরিচিত হয়েছি এবং একটি সার্ভার ব্লক কীভাবে সেট আপ করতে হয় তা শিখেছি।

Nginx সম্পর্কে আরও জানতে এবং জানতে, আপনি Nginx উইকি দেখতে চাইতে পারেন।