وب سرور آپاچی یکی از محبوب ترین راهکار برای سرویس دهی به محتوی وب می باشد که بسیار قدرتمند و منعطف است
آپاچی به عملکرد و اجزای منحصر بفردی تجزیه می شود که می تواند بصورت سفارشی و مستقل پیکربندی شود. واحد پایه ای که یک سایت خاص با یک دامنه را توصیف می کند یک میزبان مجازی(virtual host) نامیده می شود. میزبان مجازی به یک سرور اجازه می دهند چندین دامین متعدد یا رابط را با استفاده از تطابق سیستم میزبانی کند. این مورد مربوط می شود به افرادی که یک سرور مجازی(VPS) را برای میزبانی بیشتر از یک سایت می خواهند.هر دامینی که پیکربندی می شود بازدیدکنندگان را به سمت یک دایرکتوری خاص که اطلاعات مربوط به سایت را نگهداری می کند،هدایت می کند. همان سرور برای سایتهای دیگر مسئول می باشد. این طرح بدون هیچگونه محدودیت نرم افزاری تا زمانی که سرور شما می تواند ترافیک تمام سایتهای مجذوب را رسیدگی کند، قابل ارتقا است.
در این مقاله ما می خواهیم آموزش دهیم گه چگونه چند میزبان مجازی آپاچی را بر روی سرور مجازی CentOS7 پیاده سازی کنیم. در طی این فرآیند شما یاد می گیرید که چگونه برای محتوای متفاوت به بازدیدکنندگان متفاوتی که به دامنه های مختلفی را درخواست کرده اند ، خدمات گوناگونی را ارائه دهید.
پیش نیازها:
قبل از اینکه طبق این راهنما شروع کنید چند مرحله وجود دارد که لازم است تکمیل شود.
شما نیاز دارید که به یک سرور CentOS7 یا یک کاربر غیر از root دسترسی داشته باشید که این کاربر امتیازات Sudo(sudo privileges) را داشته باشد. اگر هنوز تنظیماتی را انجام نداده اید می توانید با استفاده از این
لینک این کاربر را ایجاد کنید.
همچنین شما برای پیکربندی میزبانهای مجازی بر روی سرور نیاز دارید که یک آپاچی نصب کنید. اگر قبلا این کار را انجام نداده اید می توانید با استفاده از دستور yum آپاچی را طریق مخازن نرم افزاری پیش فرض CentOS نصب کنید.
sudo yum -y install httpd
در ادامه، آپاچی را بعنوان یک سرویس CentOS فعال کنید که بعد از reboot کردن سیستم بصورت خودکار آغاز می شود.
sudo systemctl enable httpd.service
بعد از اینکه این مراحل کامل شد، از طریق SSH بعنوان یک کاربر غیر ریشه ای(non-root) به سیستم وارد شوید و آموزش را ادامه دهید.
مرحله اول - ایجاد ساختار دایرکتوری :
در ابتدا ما نیاز داریم یک ساختار دایرکتوری ایجاد کنیم که اطلاعات سایت را برای ارائه خدمات به بازدید کنندگان در آنجا نگهداری کنیم.
اسناد ریشه ما (document root: بالاترین سطح از دایرکتوری که به نظر می رسد آپاچی برای پیدا کردن مطالب و ارائه خدمات آنرا جستجو می کند) به دایرکتوری های منحصربفردی در دایرکتوری /var/www تنظیم می شوند. ما یک دایرکتوری برای هر یک از میزبانهای مجازی که قصد ایجاد آنرا داریم، ایجاد خواهیم کرد.
در هر یک از دایرکتوری ها، یک دایرکتوری public_html ایجاد خواهیم کرد که فایلهای واقعی را در آن نگهداری شود. این کار انعطاف پذیری بیشتری در میزبانی مبدهد.
ما می توانیم این دایرکتوریها را با استفاده از دستور mkdir (استفاده از –p که اجازه می دهد که یک پوشه درون پوشه دیگری ایجاد کنیم.) بسازیم.
sudo mkdir -p /var/www/itse.com/public_html sudo mkdir -p /var/www/itse2.com/public_html
مرحله دوم _ اعطای مجوز :
در حال حاضر ما یک ساختار دایرکتوری برای فایلهای خود داریم. اما آنها به کاربر ریشه(root) تعلق دارند.اگر ما بخواهیم که کاربران بطور منظم قادر به تغییر فایلها در دایرکتوریهای وب سایت ما باشند، می توانیم با استفاده از دستور chown مالکیت آنها را تغییر دهیم :
sudo chown -R $USER:$USER /var/www/itse.com/public_html sudo chown -R $USER:$USER /var/www/itse2.com/public_html
متغییر $USER نام همان کاربری را خواهد گرفت که شما اخیرا با آن وارد سیستم شده اید در زمانی که دستور را ارسال می کنید. با انجام این کار، کاربران منظم ما مالک دایرکتوریهای public_html جایی که ما محتوای خود را ذخیره می کنیم، می باشند.
همچنین باید مجوزهایمان را طوری اصلاح کنیم که با کمی تغییر مطمئن شویم که دسترسی خواندن به دایرکتوری وب و همه فایلها و فولدر های درون آن بطور کلی مجاز است.بنایراین صفحاتی که را میتوان به درستی بکار گرفت :
sudo chmod -R 755 /var/www
وب سرور شما در حال حاضر باید مجوزهای مورد نیاز برای خدمات محتوا و کاربران شما که قادر هستند محتوا را در داخل پوشه های مناسب ایجاد کنند، را داشته باشد.
مرحله سوم- ایجاد نسخه نمایشی صفحات برای هر میزبان مجازی:
حالا که ما یک ساختار دایرکتوری را داریم، اجازه دهید که برخی از مطالب را برای استفاده ایجاد کنیم.
زیرا که این تنها راه برای نمایش و آزمایش می باشد، صفحات ما بسیار ساده خواهند بود. ما فقط صفحه index.html برای هر سایت ایجاد می کنیم که آن دامنه خاص را شناسایی می کند.
اجازه بدهید که با example.com شروع کنیم. ما می توانیم یک فایل index.html را در ویرایشگر با تایپ کردن دستور زیر باز کنیم:
nano /var/www/itse.com/public_html/index.html
در این فایل یک سند HTML ساده ایجاد می شود که سایتی را نشان می دهد که این صفحه به آن متصل می باشد. در این آموزش فایلی که برای اولین در دامنه ما نمایش داده می شود، مطابق زیر است:
<html> <head> <title>Welcome to Itse.com!</title> </head> <body> <h1>Success! The itse.com virtual host is working!</h1> </body> </html>
بعد از اتمام این مرحله فایل را ذخیره کنید و ببندید.
ما می توانیم با تایپ کردن دستور زیر این فایل را بعنوای یک الگو برای استفاده در index.html سایت دوممان کپی کنیم.
cp /var/www/itse.com/public_html/index.html /var/www/itse2.com/public_html/index.html
حالا اجازه دهید فایل را باز کنیم و بخش های مربوط به اطلاعات را اصلاح کنیم.
nano /var/www/itse2.com/public_html/index.html<html> <head> <title>Welcome to itse2.com!</title> </head> <body> <h1>Success! The itse2.com virtual host is working!</h1> </body> </html>
این فایل را نیز دخیره کنید و ببندید. اکنون شما صفحات لازم برای تست پیکربندی میزبان مجازی را دارید.
مرحله چهارم- ایجاد فایل میزبان مجازی جدید:
فایلهای میزبان مجازی برای سایتهای جداگانه ما طوری پیکربندی شده اند که مشخص می کنند چگونه وب سرور آپاچی به درخواست دامنه های متفاوت پاسخ دهند.
برای شروع، ما نیاز داریم که یک دایرکتوری را راه اندازی کنیم که میزبانهای مجازی ما در آن ذخیره شوندو هم چنین دایرکتوری که به آپاچی می گوید که یک میزبان مجازی آماده پاسخگویی به بازدیدکنندگان است.
دایرکتوری sites-available همه فایلهای میزبان مجازی ما را نگهداری خواهد کرد. در حالی که دایرکتوری sites-enabled لینک های نمادین ماشین میزبانهای مجازی که ما می خواهیم انتشار دهیم را نگهداری می کند.ما با تایپ دستورات زیر می توانیم هر دو دایرکتوری را ایجاد کنیم:
sudo mkdir /etc/httpd/sites-available sudo mkdir /etc/httpd/sites-enabled
در ادامه ما باید به آپاچی بگوییم که میزبانهای مجازی را در دایرکتوری sites-enabled مشاهده کند.برای انجام این کار، ما فایل اصلی پیکربندی آپاچی را ویرایش می کنیم و یک خط که یک دایرکتوری اختیاری را برای پیکربندی اضافی فایل ها اعلام می کند را اضافه می کنیم:
sudo nano /etc/httpd/conf/httpd.conf
این خط را به انتهای فایل اضافه کنید:
IncludeOptional sites-enabled/*.conf
بعد از اضافه کردن این خط فایل را ذخیره کنید و ببندید.اکنون ما آماده ایم اولین فایل میزبان مجازی را ایجاد کنیم.
ایجاد اولین فایل میزبان مجازی:
با باز کردن یک فایل جدید در ویرایشگر خود با دسترسی root شروع کنید:
sudo nano /etc/httpd/sites-available/itse.com.conf
در ابتدا، با ایجاد یک جفت tag برچسب محتوا به عنوان یک ماشین مجازی که درحال گوش دادن به پورت 80 (پورت پیش فرض HTTP)می باشد شروع کنید:
<VirtualHost *:80> </VirtualHost>
در ادامه نام سرور اصلی را اعلام کنید. در اینجا ما بعنوان مثال www.itse.com را وارد کرده ایم. ما همچنین نام مستعار سرور را به itse.com اشاره می دهیم بطوریکه درخواست ها برای www.itse.com و itse.com با محتوای یکسان ارسال می شوند:
<VirtualHost *:80> ServerName www.itse.com ServerAlias itse.com </VirtualHost>
نکته: برای اینکه نسخه های www از دامنه به درستی کار کنند پیکربندی DNS های دامنه نیاز به یک A record یا CNAME دارند که درخواست های www را به IP سرور اشاره دهد. برای کلمات (*) رکورد نیز کار می کند. برای اطلاعات بیشتر در مورد DNS این لینک را مطالعه نمائید.
در نهایت، ما با اشاره به دایرکتوری root از اسناد وب سایتمان که در دسترس عموم می باشند کار را پایان می دهیم. ما همچنین به آپاچی می گوییم که خطاها و درخواست log های مربوط به این سایت خاص را در کجا ذخیره کند:
<VirtualHost *:80> ServerName www.itse.com ServerAlias itse.com DocumentRoot /var/www/itse.com/public_html ErrorLog /var/www/itse.com/error.log CustomLog /var/www/itse.com/requests.log combined </VirtualHost>
هنگامی که نوشتن این موارد به پایان رسید می توانید این فایل را ذخیره کنید و ببندید.
کپی کردن اولین میزبان مجازی و سفارشی سازی آن برای دامنه های اضافی:
حالا که اولین فایل میزبان مجازی خود را ایجاد کردیم،ما می توانیم با کپی کردن این فایل و تنظیم موارد مورد نیاز دومین میزبان مجازی را ایجاد کنیم.
با استفاده از دستور cp کپی را شروع کنید:
sudo cp /etc/httpd/sites-available/itse.com.conf /etc/httpd/sites-available/itse2.com.conf
یک فایل جدید با دسترسی root در ویرایشگر خود باز کنید:
sudo nano /etc/httpd/sites-available/itse2.com.conf
شما اکنون نیاز دارید که تمامی قسمتهای اطلاعاتی را که به دامین دوم شما ارجاع داده می شود را تغییر دهید.بعد از اینکه کار شما تمام شد، فایلهای میزبان مجازی دوم شما ممکن است چیزی شبیه به این باشد:
<VirtualHost *:80> ServerName www.itse2.com DocumentRoot /var/www/itse2.com/public_html ServerAlias itse2.com ErrorLog /var/www/itse2.com/error.log CustomLog /var/www/itse2.com/requests.log combined </VirtualHost>
وقتی که انجام این تغییرات به پایان رسید، می توانید فایل را ذخیره کنید و ببندید.
مرحله پنجم- فعال کردن فایل میزبان مجازی جدید:
اکنون که فایلهای میزبان مجازی را ایجاد کرده ایم، باید آنها را فعال کنیم تا آپاچی برای استفاده از آنها برای بازدیدکنندگان آنها را شناسایی کند.برای انجام این کار، ما می توانیم لینک نمادین را برای هر میزبان مجازی در دایرکتوری ites-enabled ایجاد کنیم :
sudo ln -s /etc/httpd/sites-available/itse.com.conf /etc/httpd/sites-enabled/itse.com.conf sudo ln -s /etc/httpd/sites-available/itse2.com.conf /etc/httpd/sites-enabled/itse2.com.conf
هنگامی که کار شما به پایان رسید برای اعمال تغییرات Apache را ریستارت کنید:
sudo apachectl restart
مرحله ششم- راه اندازی فایل میزبان های محلی (اختیاری):
اگر شما برای تست این روش از دامنه های example به جای دامنه های واقعی استفاده می کنید، شماهمچنان می توانید قابلیت های میزبان های مجازی خود را بطور موقت با تغییر در فایل های میزبان کامپیوتر خود تست نمائید. این عمل هرگونه درخواست برای دامین هایی که شما پیکربندی کرده اید و به سرور VPS خود اشاره داده اید را جدا می کند. فقط یک سیستم DNS می تواند این کار را انجام دهد اگر شما از دامنه های ثبت شده استفاده کنید.هر چند این کار فقط به روی کامپیوتر شما انجام می شود و به سادگی برای آزمایش اهدافتان مفید است.
نکته : مطمئن شوید که این مراحل را روی کامپیوتر محلی خود انجام می دهید نه روی سرور مجازیتان. شما نیاز دارید که به اعتبارنامه های اداری برای این کامپیوتر دسترسی داشته باشید.
اگر شما بر روی یک کامپیوتر Mac با Linux هستید، می توانید با تایپ دستور زیر فایل میزبانهای محلی خود را با دسترسی مدیریتی ویرایش کنید:
sudo nano /etc/hosts
اگر شما بر روی یک ماشین ویندوز هستید، می توانید دستورالعمل را در مورد تغییر فایل میزبان از اینجا پیدا کنید.
جزئیاتی که نیاز دارید اضافه کنید، IP آدرس های عمومی سرور مجازی شما به همراه دامنه هایی که برای رسیدن به آن سرور مجازی می خواهید، هستند:
127.0.0.1 localhost 127.0.1.1 guest-desktop server_ip_address itse.com server_ip_address itse2.com
این دستورات هر درخواستی که برای itse.com و itse2.com بر روی کامپیوتر محلی ما فرستاده می شود و آنها را بر روی سرور ما server_ip_address ارسال می کند.
مرحله هفتم- نتایج آزمون شما:
حالا که شما میزبان های مجازی پیکربندی شده ای دارید، می توانید تنظیمات خود را به راحتی با رفتن به دامنه هایتان که در مرورگر وب خود پیکربندی کرده اید ، تست کنید.
http://itse.com
شما باید یک صفحه مانند زیر مشاهده کنید.
به همین ترتیب اگر شما دامنه های دیگرتان را بازدید کنید، فایلهایی را که ایجاد کرده اید را می بینید.
اگر تمام سایتهایی که پیکربندی کرده اید به درستی کار کنند،پس شما با موفقیت میزبانهای مجازی آپاچی جدید خود را روی همان سرور CentOS پیکربندی کرده اید.
اگر فایل میزبانهای کامپیوتر خانگی خود را تنظیم کرده اید، حالا که مطمئن شده اید پیکریندی شما به درستی کار می کند ممکن است بخواهید خط هایی را که اضافه کرده اید را حذف کنید.
این مورد باعث جلوگیری از ایجاد فایلهای میزبانهای شما با مواردی می شود که در اصل نیازی به آنها نیست.
نتیجه :
شما اکنون می بایست اکنون قادر باشد یک سرور CentOS7 را با سایتهای مختلف با دامنه های مجزا رسیدگی کنید. شما می توانید این فرآیند را با دنبال کردن مراحل بالا به میزبانهای مجازی بیشتری گسترش دهید.هیچ محدودیت نرم افزاری برای تعداد نام دامنه هایی که آپاچی می تواند رسیدگی کند وجود ندارد.
منبع مقاله