ওয়েব সার্ভার সেটআপ: Apache, Nginx
ওয়েব সার্ভার হল একটি সফটওয়্যার যা HTTP প্রোটোকলের মাধ্যমে ক্লায়েন্টের (সাধারণত ওয়েব ব্রাউজার) কাছ থেকে আসা অনুরোধ গ্রহণ করে এবং সেগুলোর জন্য প্রয়োজনীয় ফাইল, ডেটা বা অ্যাপ্লিকেশন প্রেরণ করে। ওয়েব সার্ভার দুটি জনপ্রিয় এবং শক্তিশালী সফটওয়্যার হল Apache এবং Nginx। এই দুটি ওয়েব সার্ভারই লিনাক্স/ইউনিক্স সিস্টেমে খুবই জনপ্রিয় এবং প্রযোজ্য।
এই গাইডে আমরা Apache এবং Nginx ওয়েব সার্ভার সিস্টেমে ইনস্টল এবং কনফিগার করার প্রক্রিয়া আলোচনা করব।
1. Apache ওয়েব সার্ভার সেটআপ
Apache HTTP Server একটি ওপেন সোর্স ওয়েব সার্ভার সফটওয়্যার, যা বিশ্বব্যাপী সবচেয়ে জনপ্রিয় ওয়েব সার্ভার হিসেবে পরিচিত। এটি HTTP প্রোটোকল ব্যবহার করে ওয়েব পেজের কন্টেন্ট সার্ভ করতে সক্ষম।
Apache ইনস্টল করা
Ubuntu/Debian:
sudo apt update
sudo apt install apache2CentOS/RHEL:
sudo yum install httpdApache সার্ভার চালু করা
সার্ভার চালু করা:
sudo systemctl start apache2 # Ubuntu/Debian sudo systemctl start httpd # CentOS/RHELসার্ভার স্বয়ংক্রিয়ভাবে চালু হওয়া নিশ্চিত করা:
sudo systemctl enable apache2 # Ubuntu/Debian sudo systemctl enable httpd # CentOS/RHEL
Apache কনফিগারেশন ফাইল
- Apache কনফিগারেশন ফাইল সাধারণত
/etc/apache2/apache2.conf(Ubuntu/Debian) অথবা/etc/httpd/conf/httpd.conf(CentOS/RHEL) এ থাকে। - কনফিগারেশন পরিবর্তন:
- আপনি Apache কনফিগারেশন ফাইল পরিবর্তন করে বিভিন্ন সেটিংস কাস্টমাইজ করতে পারেন, যেমন ওয়েব রুট, লগিং, ফাইল পারমিশন ইত্যাদি।
Apache ওয়েব পেজ পরীক্ষা
যদি আপনি Apache সার্ভারটি সফলভাবে ইনস্টল এবং চালু করে থাকেন, তবে আপনি আপনার ব্রাউজারে গিয়ে http://your-server-ip এ গিয়ে Apache এর ডিফল্ট ওয়েব পেজ দেখতে পাবেন। এখানে your-server-ip হল আপনার সার্ভারের IP ঠিকানা।
2. Nginx ওয়েব সার্ভার সেটআপ
Nginx (উচ্চ পারফরম্যান্স HTTP এবং রিভার্স প্রক্সি সার্ভার) একটি লাইটওয়েট এবং শক্তিশালী ওয়েব সার্ভার, যা সাধারণত গতির কারণে ব্যবহৃত হয়। Nginx কম রিসোর্স ব্যবহার করে অধিক ট্রাফিক পরিচালনা করতে সক্ষম।
Nginx ইনস্টল করা
Ubuntu/Debian:
sudo apt update
sudo apt install nginxCentOS/RHEL:
sudo yum install nginxNginx সার্ভার চালু করা
সার্ভার চালু করা:
sudo systemctl start nginxসার্ভার স্বয়ংক্রিয়ভাবে চালু হওয়া নিশ্চিত করা:
sudo systemctl enable nginx
Nginx কনফিগারেশন ফাইল
- Nginx কনফিগারেশন ফাইল সাধারণত
/etc/nginx/nginx.confএ থাকে। আপনি এই ফাইলটি কনফিগারেশন পরিবর্তন করতে ব্যবহার করতে পারেন। কনফিগারেশন ফাইল পরীক্ষা:
sudo nginx -tNginx রিস্টার্ট বা রিলোড:
কনফিগারেশন পরিবর্তন করার পর Nginx সার্ভার রিস্টার্ট বা রিলোড করতে হবে।sudo systemctl restart nginx
Nginx ওয়েব পেজ পরীক্ষা
যদি Nginx সফলভাবে ইনস্টল এবং চালু করা হয়ে থাকে, তাহলে আপনি আপনার ব্রাউজারে গিয়ে http://your-server-ip এ গিয়ে Nginx এর ডিফল্ট ওয়েব পেজ দেখতে পারবেন।
3. Apache vs Nginx
Apache এবং Nginx দুটি শক্তিশালী ওয়েব সার্ভার হলেও তাদের মধ্যে কিছু পার্থক্য রয়েছে:
Apache এর সুবিধাসমূহ:
- কাস্টমাইজেবল: Apache অনেক বেশি কাস্টমাইজযোগ্য। এটি মডিউল সাপোর্ট করে, যা সার্ভারের কার্যকারিতা বাড়ানোর জন্য ব্যবহার করা যায়।
- .htaccess ফাইল: Apache
.htaccessফাইলের মাধ্যমে বিভিন্ন কনফিগারেশন পরিবর্তন করার সুবিধা দেয়। - সাধারণ এবং প্রমাণিত: Apache অনেক পুরানো এবং বিশাল কমিউনিটি সাপোর্ট রয়েছে।
Nginx এর সুবিধাসমূহ:
- কম রিসোর্স ব্যবহার: Nginx অনেক কম রিসোর্স ব্যবহার করে এবং আরো অধিক ট্রাফিক পরিচালনা করতে সক্ষম।
- রিভার্স প্রক্সি: Nginx সহজে রিভার্স প্রক্সি হিসেবে ব্যবহার করা যায়, যা সাধারণত লোড ব্যালেন্সিং এবং কন্টেন্ট সার্ভিং এর জন্য ব্যবহৃত হয়।
- স্ট্যাটিক কন্টেন্ট সেবন: Nginx স্ট্যাটিক কন্টেন্ট সার্ভ করতে Apache এর তুলনায় অনেক দ্রুত।
4. Apache এবং Nginx একসাথে ব্যবহার করা
অনেক সময় Apache এবং Nginx একসাথে ব্যবহার করা হয়, যেখানে Nginx রিভার্স প্রক্সি হিসেবে কাজ করে এবং Apache ডাইনামিক কন্টেন্ট প্রসেসিংয়ের জন্য ব্যবহৃত হয়।
Apache এবং Nginx একসাথে কনফিগার করা:
- Nginx কনফিগার করা হয় রিভার্স প্রক্সি হিসেবে, যাতে Nginx ইনকামিং HTTP অনুরোধ গ্রহণ করে এবং ফাস্ট স্ট্যাটিক কন্টেন্ট সরবরাহ করে।
- Apache ডাইনামিক কন্টেন্ট প্রসেসিং, যেমন PHP ফাইলের জন্য ব্যবহৃত হয়।
Nginx কনফিগারেশন উদাহরণ:
Nginx কনফিগারেশন ফাইলটি /etc/nginx/sites-available/ এ থাকে এবং সেখানে রিভার্স প্রক্সি সেটআপ করা হয়।
/etc/nginx/sites-available/default:
server {
listen 80;
server_name your-domain.com;
location / {
proxy_pass http://127.0.0.1:8080; # Apache এর জন্য রিভার্স প্রক্সি
}
}এটি Nginx কে নির্দেশ দেয় যে ইনকামিং HTTP অনুরোধ Apache (যা 8080 পোর্টে চলছে) এর দিকে পাঠানো হবে।
5. অ্যাপ্লিকেশন সার্ভার কনফিগারেশন
যদি আপনি PHP, Python বা অন্যান্য ডাইনামিক কন্টেন্ট অ্যাপ্লিকেশন চালাতে চান, তবে আপনাকে বিশেষ কনফিগারেশন করতে হবে।
Apache এবং PHP:
PHP ইনস্টল করা:
sudo apt install php libapache2-mod-phpNginx এবং PHP (PHP-FPM):
PHP-FPM ইনস্টল করা:
sudo apt install php-fpmNginx কনফিগারেশন:
server {
listen 80;
server_name your-domain.com;
root /var/www/html;
index index.php;
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/html$fastcgi_script_name;
include fastcgi_params;
}
}এটি Nginx কে PHP ফাইল প্রসেস করতে PHP-FPM (FastCGI Process Manager) ব্যবহার করতে নির্দেশ দেয়।
সারসংক্ষেপ
- Apache এবং Nginx দুটি জনপ্রিয় ওয়েব সার্ভার সফটওয়্যার, যা HTTP প্রোটোকল ব্যবহার করে ওয়েব পেজ সরবরাহ করতে সক্ষম।
- Apache লম্বা সময় ধরে ব্যবহৃত একটি শক্তিশালী এবং কাস্টমাইজযোগ্য ওয়েব সার্ভার।
- Nginx দ্রুত এবং কম রিসোর্স ব্যবহার করে, বিশেষত স্ট্যাটিক কন্টেন্ট সরবরাহ এবং রিভার্স প্রক্সি হিসেবে কার্যকর।
- দুইটি সার্ভার একসাথে ব্যবহার করে Apache এবং Nginx এর সুবিধাগুলো একসাথে পাওয়া যেতে পারে।
এই টিউটোরিয়াল থেকে আপনি Apache এবং Nginx ওয়েব সার্ভার সেটআপ এবং কনফিগারেশনের মৌলিক ধারণা পেয়েছেন।
Read more