تنظیمات Virtual Host در آپاچی
تنظیمات Virtual Host در آپاچی
Apache همراه با php و mysql در تمامی سیستم عامل ها قابل نصب می باشد و بستری را برای میزبانی صفحه های وب فراهم می کند. سروری که روی آنLAMP نصب و دارای یک کارت شبکه باشد به طور معمول می تواند یک وب سایت را میزبانی کند. اما اگر بخواهید سرور شما چندین سایت را پاسخ گو باشد ، باید از Host Virtual ها استفاده کنید.
پیکربندی Virtual Host ها که از این پس VH گفته می شود به دو صورت، مبتنی بر آدرس و یا مبتنی بر نام انجام می شود.
Virtual Host مبتنی بر آدرس IP
فرض کنید می خواهید دو وب سایت را روی یک سرور میزبانی کنید. در حالت IP-Based Virtual Host برای هر کدام از این سایت ها نیاز به یک کارت شبکه است که در کل دو کارت شبکه لازم می باشد. در این صورت برای دسترسی به محتوای هر کدام آدرس کارت شبکه ای که آن صفحه وب را میزبانی می کند را در مرورگر تایپ می کنیم.
به عنوان مثال سایت FarazNetwork.irبر روی آدرس 192.168.214.136و سایت FarazLinux.ir بر روی آدرس 192.168.214.138 از درون شبکه محلی قابل دسترسی هستند. تغییرات لازم در فایل httpd.conf صورت می پذیرد.
Virtual Host مبتنی بر نام (Name)
Name-Based Virtual Host ها از یک کارت شبکه برای دسترسی به چندین وب سایت استفاده می کنند. در این حالت وقتی وب سرور آپاچی درخواستی را دریافت می کند به hostname در HTTP Headerآن نگاه می کند و وابسته به hostname، وب سایت متفاوتی را نشان می دهد.
لازمه پیکربندی این نوع VH داشتن یک کارت شبکه و همچنین یک DNS Server برای تعریف و نگاشت نام سایت (همنام به hostname در Header HTTP) به آدرس همان کارت شبکه است. فرض کنید دو سایت FarazNetwork.ir و FarazLinux.ir را می خواهید بر روی یک کارت شبکه به آدرس 192.168.214.136 میزبانی کنید. پس لازم است تغییرات را در فایل httpd.conf انجام دهید و همچنین دو رکورد از نوع A که آدرس IP یکسان دارند اما نام DNSای متفاوت (یعنی همان FarazNetwork.ir و FarazLinux.ir) را در zone file وارد کنید.
تنظیم و پیکربندی VH های مبتنی بر نام
تمامی تنظیمات در فایل httpd.conf صورت می گیرد. تغییر این فایل بر اساس تعیین آدرس و Portای است که VHها بر روی آن(ها) گوش می دهند و پاسخ داده می شود. همچنین تعریف VH ها که هر VHدارای مشخصه هایی است که تحت یک Directive تعیین می شوند.
پارامتر : NameVirtualHost فرض کنید می خواهید تمامی سایت ها بر روی کارت شبکه 51.255.106.16 و Port شماره 80 میزبانی شوند. این آدرس و Portآن از طریق پارامتر NameVirtualHost به صورت زیر تعیین می شود.
NameVirtualHost IP_ADDR:PORT_NUMBER
به عنوان مثال برای گوش دادن تمامی VH ها بر روی Port شماره 80 و آدرس 51.255.106.16 پارامتر به صورت زیر تنظیم خواهد شد.
NameVirtualHost 51.255.106.16:80
VirtualHost Directive : تمامی مشخصه های یک VM میان <VirtualHost IP_ADDR:PORT> و </VirtualHost>تعریف می شوند. IP_ADDR:PORT که در Directive آمده است برای تعیین کردن آدرس و Portای است که VH روی آن قابل دسترسی است. فرض کنید دو کارت شبکه دارید و می خواهید روی هر کدام چندین سایت را میزبانی کنید. پس لازم است که نخست این آدرس ها را با پارامتر NameVirtualHost تعیین کنید. بعد می توانید در خط PORT:ADDR_IP از دایرکتیو VirtualHost تعیین کنید که این VH از کدام آدرس و Port استفاده کند.
به عنوان مثال 51.255.106.16:80 یعنی از میان تمامی آدرس ها، این VH بر روی آدرس و Port فوق میزبانی می شود. یا اینکه 80:*یعنی این VH بر روی تمامی آدرس ها و Portشماره 80 میزبانی می شود.
مشخصه هایی که لازم است برای تعریف یک VH میان دایرکتیو VirtualHost آورده شوند موارد زیر هستند.
ServerAdmin : آدرس ایمل مدیر سایت (مسئول سایت) را معین می کند.
DocumentRoot : مسیر و دایرکتوری که محتوای وب سایت در آن قرار می گیرد. برای مثال اگر نام سایت FarazNetwork.ir باشد باید یک دایرکتوری همنام با مسیر فوق ایجاد کنیم.
ServerName : همنام با نام سایت و همنام با نام dns ای که در zone file درج می شود. همین نام را در مرورگر تایپ می کنیم و apache از روی HTTPD Header تشخیص می دهد که کدام سایت را درخواست کرده اید.
ErrorLog : مشخص کننده مسیر فایلی که رویداد های سایت در آن ثبت می شود.
توجه کنید که پیش از restart کردن وب سرور Apache برای اعمال تغییرات باید دایرکتوری های مشخص شده در DocumentRoot و ErrorLog را ایجاد کنید. فرض اینکه می خواهید برای سایت FarazNetwork.ir دایرکتوری را ایجاد کنید.
mkdir -p /var/www/laitec.ir/public_html
mkdir /var/www/laitec.ir/logs
حالا با فرمان زیر سرویس httpd را restart کنید :
service httpd restart
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.