آموزش 20 نکته در مورد وب سرور آپاچی

ایجاد شده توسط | اسفند ۲۴, ۱۳۹۵

مقدمه

دانستن اطلاعات کلیدی از یک وب سرور میتواند بسیار جالب و مفید باشد، اما ممکن است هر شخصی زمان کافی مطاله Document های مرتبط را نداشته باشد. در حالی که گرد اوری و نگارش این مقاله به ساعت ها زمان نیاز دارد مطالعه ان تنها 15 تا 20 دقیقه از زمان شما را خواهد گرفت.

 

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

1. وب سرور آپاچی چیست ؟

آپاچی یکی از معروف ترین و قدرتمند ترین وب سرور های جهان میباشد که بصورت متن باز برای میزبانی فایل ها و صفحات وب در بستر اینترنت و شبکه ارائه شده است. این وب سرور بر پایه پروتکل HTTP یا همان Hyper Text Transfer که یک استاندارد ارتباطی بین Server و Client است سرویس دهی میکند. این وب سرور از SSL، فایل های CGI و دیگر امکانات پشتیبانی میکند.

2. چگونه میتوان ورژن آپاچی را فهمید ؟

در ابتدا با دستور مدیریت پکیج برسی نمایید که ایا این وب سرور نصب شده است یا خیر، سپس با استفاده از دستورات زیر میتوانید ورژن وب سرور را در محیط Command-Line برسی نمایید.

دستور برسی نصب:

rpm -qa | grep httpd

دستور برسی نسخه وب سرور:

httpd -v

3. آپاچی تحت چه یوزری اجرا میشود ؟ فایل اصلی تنظیمات آپاچی در چه آدرسی قرار دارد ؟

آپاچی تحت یوزر “nobody” یا “apache” اجرا میشود. آدرس فایل تنظیمات اصلی اپاچی در توضیع های CentOS و RHEL در ادرس: etc/httpd/conf/httpd.conf/ و در توضیع های Ubunto و Debian در آدرس etc/apache2.con/ قرار دارد.

4. آپاچی از کدام پورت برای پروتکل های http و https استفاده می کند ؟

بصورت پیشفرض آپاچی برای پروتکل http از پورت 80 و برای پروتکل https از پورت 443 استفاده میکند. در صورت نیاز میتوانید با تغییر در فایل اصلی تنظیمات پورت های ذکر شده را تغییر دهید. با استفاده از دستور netstat میتوانید پورت در حال استفاده را مشاهده نمایید.

netstat -antp | grep http

5. چگونه میتوان Apache را روی یک سیستم لینوکسی نصب کرد؟

انجام اینکار بسیار ساده است! با استفاده از Package manager میتوان این ابزار را به آسانی در سرور لینوکسی نصب کرد. توجه داشته باشید زمانی که از Package Manager برای نصب استفاده میکنید آخرین ورژن Stable برای نسخه لینوکس مورد استفاده نصب خواهد. اگر مایلید از آخرین نسخه این وب سرور استفاده نمایید میتوانید فایل نصب را دانلود کرده سپس آن را از طریق سورس نصب نمایید.

نصب در RHEL و CentOS :

yum install httpd

نصب در Ubuntu و Debian :

apt-get install apache2

6. دایرکتوری تنظیمات Apache در چه ادرسی قرار دارد ؟

بصورت پیشفرض تمامی دایرکتوری های تنظیمات آپاچی در توضیع های RHEL, CentOS و Fedora در آدرس etc/httpd/ و در Debian و Ubuntu در آدرس etc/apache2/ قرار دارد.

توضیع های RHEL, CentOS و Fedora :

توضیع های Debian و Ubuntu:

7. آیا میتوان Apache را با استفاده از TCP Wrapper امن نمود ؟

به دلیل عدم پشتیبانی از کتابخانه libwrap.a لینوکس نمیتوان آن را با استفاده از این کتابخانه امن نمود.

8. چگونه میتوان پورت پیشفرض آپاچی را تغییر داد ؟

در فایل تنظیمات آپاچی یک متغییر به نام Listen قرار دارد که با استفاده از ان میتوان پورت پیشفرض http و https را تغییر داد.

9. آیا میتوان در یک سرور از 2 وب سرور Apache استفاده کرد ؟

بله، در یک سرور میتوانید از 2 وب سرور آپاچی بصورت همزمان استفاده نمایید اما شرط انجام این کار تغییر پورت پیشفرض میباشد که یکی از وب سرور ها برای پروتکل http بر روی پورت دیگری در حالت Listen قرار گرفته باشد.

10. منظور از DocumentRoot چیست ؟

در آپاچی DocumentRoot به معنی شاخه یا ادرسی در سرور است که فایل های صفحات وب در ان ذخیره میشود. بصورت پیشفرض DocumentRoot در آدرس /var/www/html/ یا /var/www/ قرار دارد. شما میتوانید برای هر host یک DocumentRoot متفاوت داشته باشید. برای تغییر ادرس اصلی باید وارد فایل تنظیمات شده و DocumentRoot را در Virtual Host ایحاد شده تغییر دهید.

11. DirectoryIndex چیست ؟

DirectoryIndex نام اولین فایلی است که در زمان ارسال درخواست به دامنه به دنبال ان می گردد. برای مثال زمانی که درخواست به آدرس دامنه www.wikiconfig.ir ارسال میشود اپاچی به دنبال فایل index.php میگردد و پس از یافتن ان را جهت نمایل با استفاده از php کامپایل کرده، سپس صفحه html ایجاد شده را به کاربر ارسال میکند. در واقع DirectoryIndex نام اولین فایل برای نمایش است. برای تغییر این مورد فایل اصلی تنظیمات آپاچی را باز کرده سپس با ویرایش متغیر DirectoryIndex تغییرات مورد نظر را اعمال نمایید.

12. زمانی که فایل Index وجود نداشته باشد چگونه باید نمایش دایرکتوری یا Directory listing را غیر فعال کرد ؟

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

برای رفع این مشکل کافیست کد زیر را در فایل اصلی تنظیمات و یا فایل htaccess وارد نمایید.

<Directory /var/www/html>
Options -Indexes
</Directory>

13. نام فایل های لاگ آپاچی چیست و در چه آدرسی قرار دارد ؟

لاگ پیشفرض  اپاچی که مربوط به دسترسی و اتصال کاربران میباشد access_log نام دارد که در ادرس var/log/httpd/access_log/ و لاگ مربوط به ارور های Apache با نام error_log در آدرس var/log.httpd/error_log قرار دارد.

14. علت مشاهده خطای “Connection reset by peer” در لاگ ارور آپاچی چیست ؟

زمانی که Apache در حال Serve کردن یا پاسخ به درخواست کاربر است و کاربر در بین این عملیات اتصال را قطع میکند این ارور در لاگ نوشته خواهد شد.

15. Virtual Host چیست ؟

Virtual Host قسمتی در فایل اصلی تنظیمات است که برای هر دامنه و یا سابدامنه ایجاد میشود. در Virtual Host اطلاعاتی مانند ایمیل ادمین، محل ذخیره لاگ ها برای دامنه مشخص شده، ادرس DocumentRoot و … قرار خواهد گرفت که میتواند برای هر ادرس دامنه با توجه به نیاز شما متفاوت باشد.

یک بلاک Virtual Host:

<VirtualHost *:80>
ServerAdmin info@wikiconfig.ir
DocumentRoot /home/wikiconfi/
ServerName wikiconfig.ir
ErrorLog logs/wikiconfig.ir-error_log
CustomLog logs/wikiconfig.ir-access_log common
</VirtualHost>

16. تفاوت Location و Directory چیست ؟

<Location> مواردی که مربوط به ادرس های URL میباشد.
<Directory> به ادرس فایل ها و پوشه ها در سرور مربوط میباشد.

17. مفهوم Apache Virtual Hosting چیست ؟

Apache Virtual Hosting در واقع مفهوم و قواعد برای سرویس دهی چند سایت در سرور میباشد. در سرور میتوانید 2 نوع Virtual Host تنظیم کنید. اولی بر پایه دامنه (Name Based Virtual hosting) و نوع دوم نیز بر پایه IP (IP based virtual hosting) میباشد.

18. MPM در Apache به چه معناست ؟

MPM یا Multi Processing Modules مکانیزم های خاصی را برای پاسخ به درخواست کاربر ارائه میکند. در واقغ اپاچی دارای مد های مختلف کاری میباشد.

19. تفاوت بین Worker MPM و Prefork MPM با چیست ؟

Worker و Prefork هر دو مکانیز های خاص خود را برای کار در اپاچی دارا میباشند. زمانی که یک یا چندین درخواست به اپاچی ارسال میشود در مد Worker MPM یک Process اپاچی فعال شده و با استفاده از thread های مختلف درخواست کاربر را پاسخ میدهد در صورتی که در مد Prefork MPM یک Master Process ایجاد شده و با استفاده از تولید و مدیریت Child Process درخواست را مدیریت میکند. 

20. LimitRequestBody چیست ؟

LimitRequestBody متغیری در فایل اصلی تنظیمات است که برای اعمال محدودیت حجمی در هنگام دانلود استفاده میشود.

21. کارایی مازول Mod_evasive چیست ؟

با استفاده از این مازول میتوانید با حملاتی نظیر DDOS مقابله کرده و جلوی ان را بگیرید. این ماژول third party بوده و بصورت پیشفرض در آپاچی وجود ندارد و برای استفاده باید ان را نصب نمایید.

 

برای اطلاعات بیشتر در مورد موارد معرفی شده میتوانید در اینترنت جستجو نمایید. امیدواریم این مقاله برای شما عزیزان مفید واقع شود.
پیروز و سلامت باشید.

منبع “ویکی کانفیگ”

پاسخ دهید

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