آپاچی (Apache)، یک وب سرور رایگان، منبع باز و پرکاربردترین وب سرور در سراسر جهان است. این موضوع نه فقط به دلیل قدرت وب سرور آپاچی، بلکه به خاطر شناخته شدن اجزای (Components) متعدد آن با عملکردهای خاص است. یکی از این اجزاها، میزبان مجازی آپاچی (Apache Virtual Host) است. میزبان مجازی آپاچی، به ما امکان میزبانی چند وب سایت روی یک وب سرور را می دهد.
اگر یک سرور بزرگ با منابع گسترده مانند فضایHDD ، RAM و CPU داشته باشید، می توانید با استفاده از میزبانی مجازی، چند وب سایت را میزبانی کنید. شما می توانید تعداد نامحدودی وب سایت را در وب سرور آپاچی خود میزبانی کنید. فقط باید مطمئن باشید که سرورتان منابع کافی برای رسیدگی به نیازهای ترافیک و فضای دیسک را دارد. آپاچی یکی از بهترین نمونه های ارائه دهنده میزبانی وب است که از میزبانی مجازی برای میزبانی صدها و هزاران وب سایت روی یک سرور استفاده می کند.
سه روش برای میزبانی چند وب سایت روی یک سرور وجود دارد:
- میزبانی مجازی مبتنی بر نام (Name-based Virtual Hosting)
- میزبانی مجازی مبتنی بر IP ا(IP-based Virtual Hosting)
- میزبانی مجازی مبتنی بر پورت (Port-based Virtual Hosting)
در این آموزش، ما نحوه میزبانی دو وب سایت روی یک سرور را به سه روش مختلف توضیح می دهیم.
پیش نیازها
- یک VPS اوبونتو 18.04 یا دبیان
- دو نام دامنه یا زیر دامنه معتبر که به آدرسIP در VPS شما اشاره کرده است. در این آموزش، ما از site1.example.com و site2.example.com به عنوان زیر دامنه استفاده می کنیم.
- دو آدرس IP ثابت (Static)، 192.168.0.101 و 192.168.0.102، روی VPS شما پیکربندی شده است.
دو نکته را فراموش نکنید، اول این که ما به یک VPS نیاز داریم و دوم اینکه مرحله 1 در هر 3 روش یکسان می باشد. پس از ورود به سرور اوبونتو 18.04 یا دبیان، دستور زیر را اجرا کنید تا سیستم اصلی خود را با جدیدترین بسته های موجود به روز کنید.
apt-get update -y
مرحله 1 – نصب وب سرور آپاچی
ابتدا وب سرور آپاچی را با اجرای دستور زیر نصب کنید:
apt-get install apache2 -y
پس از اتمام نصب، سرویس آپاچی را با دستور زیر راه اندازی کنید:
systemctl start apache2
روش اول: میزبانی مجازی مبتنی بر نام
میزبانی مجازی مبتنی بر نام، رایج ترین روش برای میزبانی چند وب سایت در آدرس IP و پورت یکسان است. برای میزبانی چند وب سایت با استفاده از میزبانی مجازی مبتنی بر نام، به نام دامنه معتبر نیاز دارید.
در این بخش، از site1.example.com و site2.example.com برای میزبانی دو وب سایت روی یک سرور واحد، استفاده خواهیم کرد.
مرحله 2- ایجاد ساختار دایرکتوری
ابتدا یک دایرکتوری ریشه (root)، برای هر دو وب سایت ایجاد کنید:
mkdir /var/www/html/site1.example.com
mkdir /var/www/html/site2.example.com
در مرحله بعد، یک صفحه index.html برای هر دو وب سایت ایجاد کنید.
ابتدا یک صفحه index.html برای site1.example.com ایجاد کنید:
nano /var/www/html/site1.example.com/index.html
خط های زیر را اضافه و آن را ذخیره کنید:
<html>
<title>site1.example.com</title>
<h1>Welcome to site1.example.com Website</h1>
<p>This is my first website hosted with name-based virtual hosting</p>
</html>
بعد، یک صفحه index.html برای site2.example.com ایجاد کنید:
nano /var/www/html/site2.example.com/index.html
خط های زیر را اضافه و آن را ذخیره کنید:
<html>
<title>site2.example.com</title>
<h1>Welcome to site2.example.com Website</h1>
<p>This is my second website hosted with name-based virtual hosting</p>
</html>
در مرحله بعد، مالکیت دایرکتوری site1.example.com و site2.example.com را به www-data تغییر دهید:
chown -R www-data:www-data /var/www/html/site1.example.com
chown -R www-data:www-data /var/www/html/site2.example.com
مرحله 3 – ایجاد فایل پیکربندی میزبان مجازی آپاچی
در مرحله بعد، باید یک فایل پیکربندی میزبان مجازی آپاچی ایجاد کنید تا به هر دو وب سایت، سرویس دهد.
ابتدا یک فایل پیکربندی میزبان مجازی آپاچی برای site1.example.com ایجاد کنید:
nano /etc/apache2/sites-available/site1.example.com.conf
خط های زیر را اضافه کنید:
<VirtualHost *:80>
ServerAdmin admin@site1.example.com
ServerName site1.example.com
DocumentRoot /var/www/html/site1.example.com
DirectoryIndex index.html
ErrorLog ${APACHE_LOG_DIR}/site1.example.com_error.log
CustomLog ${APACHE_LOG_DIR}/site1.example.com_access.log combined
</VirtualHost>
ذخیره کنید و فایل را ببندید.
در مرحله بعد، یک فایل پیکربندی میزبان مجازی آپاچی برای site2.example.com ایجاد کنید:
nano /etc/apache2/sites-available/site2.example.com.conf
خط های زیر را اضافه کنید:
<VirtualHost *:80>
ServerAdmin admin@site2.example.com
ServerName site2.example.com
DocumentRoot /var/www/html/site2.example.com
DirectoryIndex index.htmlErrorLog
ErrorLog ${APACHE_LOG_DIR}/site2.example.com_error.log
CustomLog ${APACHE_LOG_DIR}/site2.example.com_access.log combined
</VirtualHost>
ذخیره کنید و فایل را ببندید. سپس فایل پیکربندی میزبان مجازی آپاچی را با دستورات زیر فعال کنید:
a2ensite site1.example.com
a2ensite site2.example.com
در مرحله بعد، سرور وب آپاچی را دوباره راه اندازی کنید تا تغییرات پیکربندی اعمال شود:
systemctl restart apache2
مرحله 4 – تست هر دو وب سایت
در این مرحله، شما وب سرور آپاچی را برای سرویس دادن به دو وب سایت پیکربندی کرده اید.
اکنون، مرورگر وب خود را باز کرده و آدرس اینترنتی http://site1.example.com را تایپ کنید. شما باید اولین وب سایت خود را در صفحه زیر مشاهده کنید:
سپس یک تب دیگر در مرورگر وب خود باز کرده و آدرس اینترنتی http://site2.example.com را تایپ کنید. شما باید وب سایت دوم خود را در صفحه زیر مشاهده کنید:
خب! همان طور که میبینید، موفق شدید 2 وب سایت را روی یک وب سرور آپاچی، راه اندازی کنید. در بخش دوم از همین مقاله، به 2 روش دیگر یعنی میزبانی مجازی مبتنی بر IP و پورت خواهیم پرداخت.