سرور مجازیمقالات وب

چگونه سایت های متعددی را بر روی سرور مجازی میزبانی کنیم؟

در این مقاله سعی می کنیم به صورت مرحله به مرحله دستورات مربوط به میزبانی چندین سایت بر روی  سرور مجازی اوبونتو یا سنت او اس را با هم مرور کنیم. میزبانی چندین دامنه یا زیردامنه در سرور مجازی به کمک ویرچوال هاست در آپاچی یا بلوک سرور در NGINX بسیار ساده و اسان است. پس همراه وب ایده باشید تا این فرآیند را با هم مرور کنیم.

ویرچوال هاست(Virtual Hosts) آپاچی:

ویرچوال هاست در آپاچی به کاربران اجازه می دهد سایت های متعددی را بر روی یک آی پی آدرس میزبانی کنند و تنظیمات خوبی را برای هر سایت فراهم آورند.  برای اینکه بتوانید ویرچوال هاست آپاچی را برای میزبانی دامنه یا زیر دامنه های متعدد پیکربندی کنید از طریق SSH به سرور مجازی وصل شوید  و آپاچی را نصب نمایید.

بر روی سرور مجازی اوبونتو یا دبیان می توانید از دستور زیر استفاده کنید:

apt-get update

apt-get install apache2

 

 

بر روی سرور سنت او اس یا فدورا از دستور زیر بهره ببرید:

yum update



yum install httpd

 

 

بک آپی از پیکربندی های آپاچی تهیه کنید و سپس  دستوردهنده ویرچوال هاست را برای سایت تنظیم و راه اندازی نمایید:

 بر روی اوبونتو یا دبیان:

فایل پیکربندی اصلی آپاچی(etc/apache2/apache2.conf) را ویرایش کنید و خط زیر را پیدا کنید و uncomment نمایید.

vi /etc/apache2/apache2.conf

IncludeOptional sites-enabled/*.conf

 

 

سنت او اس یا فدورا:

فایل پیکربندی اصلی آپاچی(/etc/httpd/conf/httpd.conf) را ویرایش کنید و خط زیر را uncomment نمایید:

vi /etc/httpd/conf/httpd.conf

NameVirtualHost *:80

 

 

لطفا توجه داشته باشید که دستوردهنده NameVirtualHost در حال حاضر به طور پیش فرض بر روی اوبونتو 16.04 و سنت او اس 7 فعال شده است. ویرچوال هاست را در آپاچی برای هر دامنه یا زیردامنه ایجاد کنید. به عنوان مثال فرض کنید می خواهیم ویرچوال هاستی برای domain1.com و domain2.com ایجاد نماییم.

 در اوبونتو یا دبیان:

vi /etc/apache2/sites-available/domain1.conf

<VirtualHost *:80>
DocumentRoot “/var/www/html/domain1”
ServerName domain1.com
ServerAlias www.domain1.com

# enter other directives here

<Directory /var/www/html/domain1/>
Options FollowSymLinks
AllowOverride All
Order allow,deny
allow from all

</Directory>
ErrorLog /var/log/apache2/domain1.com-error_log
CustomLog /var/log/apache2/domain2.com-access_log common
</VirtualHost>

vi /etc/apache2/sites-available/domain2.conf

<VirtualHost *:80>
DocumentRoot “/var/www/html/domain2”
ServerName domain2.com
ServerAlias www.domain2.com

# enter other directives here
</VirtualHost>

 

 

پیکربندی domain1.conf و domain2.conf را در آپاچی به کمک دستور زیر فعال کنید:

ln -s /etc/apache2/sites-available/domain1.conf /etc/apache2/sites-enabled/domain1.conf

ln -s /etc/apache2/sites-available/domain2.conf /etc/apache2/sites-enabled/domain2.conf

 

 

یا اینکه می توانید از دستور a2ensite برای فعالسازی این پیکربندی ها در آپاچی استفاده کنید:

sudo a2ensite domain1.conf

sudo a2ensite domain2.conf

 

 

برای اینکه تغییرات اعمال شود آپاچی را ریستارت کنید:

service apache2 restart

 

سنت او اس یا فدورا:

فایل پیکربندی اصلی در آپاچی (/etc/httpd/conf/httpd.conf) را ویرایش کنید و ویرچوال هاست را در انتها بیفزایید:

vi /etc/httpd/conf/httpd.conf

<VirtualHost *:80>
DocumentRoot “/var/www/html/domain1”
ServerName domain1.com
ServerAlias www.domain1.com
# enter other directives here
</VirtualHost>
<VirtualHost *:80>
DocumentRoot “/var/www/html/domain2”
ServerName domain2.com
ServerAlias www.domain2.com
# enter other directives here
</VirtualHost>

 

 

برای اینکه تغییرات اعمال شود آپاچی را ریستارت کنید:

service httpd restart

 

دایرکتوری های /var/www/html/domain1 و /var/www/html/domain2 را ایجاد کنید و سپس سایت خود را در آن ها آپلود نمایید. همه فایل های سایت باید توسط وب سرور قابل خواندن باشد پس مالکیت درستی را تنظیم کنید.

 در اوبونتو یا دبیان:

chown www-data:www-data -R /var/www/html/domain*

 

سنت او اس یا فدورا:

chown apache:apache -R /var/www/html/domain*

 

بلوک سرور NGINX:

برای اینکه بلوک سرور در NGINX را به گونه ای تنظیم کنیم که بتواند دامنه یا زیر دامنه متعددی را میزبانی کند، از طریق SSH به سرور مجازی خود متصل شود:

در اوبونتو یا دبیان از دستور زیر استفاده کنید:

apt-get update

apt-get install nginx

 

 

در سنت او اس یا فدورا:

yum update

yum install nginx

 

 

از فایل پیکربندی NGINX بک آپ بگیرید و سپس بلوک سرور را برای اولین سایت ایجاد نمایید:

 در اوبونتو یا دبیان:

فایل پیکربندی جدیدی برای اولین دامنه ایجاد کنید:

vi /etc/nginx/sites-available/domain1.conf

 

خطوط زیر را به آن اضافه کنید:

server {

    listen 80;



    server_name domain1.com;



    root /var/www/html/domain1.com;

    index  index.html index.htm index.php;



    location / {

        try_files $uri $uri/ =404;

    }



# add other directives here;



}

 

 

سنت او اس یا فدورا:

دستورات زیر را اجرا کنید:

mkdir /etc/nginx/sites-available

mkdir /etc/nginx/sites-enabled

 

 

خطوط زیر را به فایل پیکربندی اصلی NGINX(/etc/nginx/nginx.conf) در انتهای بلوک HTTP اضافه کنید:

vi /etc/nginx/nginx.conf

include /etc/nginx/sites-enabled/*.conf;

 

 

برای اولین سایت فایل پیکربندی جدیدی ایجاد کنید:

vi /etc/nginx/sites-available/domain1.com

server {

    listen       80;

    server_name  domain1.com;

    root   /var/www/html/domain1.com/;

    index  index.html index.htm index.php;



    location / {

        try_files $uri $uri/ =404;

    }



# add other directives here;



}

 

 

پیکربندی domain1.conf در NGINX را به کمک دستور زیر فعال کنید:

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

 

برای اعمال تغییر، NGINX را ریستارت کنید:

service nginx restart

 

هر کدام از سایت ها را به دایرکتوری روت مشخص شده در بلوک سرور آپلود نمایید. به عنوان مثال:

mkdir -p /var/www/html/domain1

 

دسترسی و مالکیت درستی برای فایل های سایت ایجاد کنید.

chown -R www-data:www-data /var/www/html/domain1

 

خوب کار ما تمام شده است. شما می توانید همین فرآیند را برای سایت های دیگر تکرار کنید. فقط به خاطر داشته باشید برای هر دامنه یا زیردامنه ای که می خواهید بر روی سرور میزبانی کنید باید یک رکورد ایجاد کنید که به آی پی آدرس سرور اشاره دارد و بعد از اینکه تغییرات DNS به طور کامل در طول اینترنت پخش شد، بازدید کننده سایت باید بتواند  از طریق مرورگر به سایت هایتان دسترسی داشته باشد.

Rate this post
برچسب ها

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

بستن