15 نکته مهم در مورد وب سرور آپاچی
در مقاله های قبلی راجع به وب سرور و انواع آن توضیحات را برای شما بیان کردیم و گفتیم که یکی از انواع وب سرور های محبوب در جهان وب سرور آپاچی است. همچنین در مقاله ای دیگر نکات لازم برای حفظ امنیت وب سرور ها بیان شد. در این مقاله نکات مهمی که در رابطه با وب سرور پر کاربرد آپاچی وجود دارد برای شما بیان می شود.
1- وب سرور آپاچی چیست؟
این وب سرور از قدرتمند ترین وب سرور های جهان است که برای میزبانی فایل ها و صفحه های وب استفاده می شود. پروتکل مورد استفاده آن HTTP است که یک ارتباط استاندارد بین سرور و کلاینت ایجاد می کند. همچنین این وب سرور از SSL پشتیبانی می کند.
2- تعیین ورژن آپاچی
با استفاده از دو دستور در محیط “کامند لاین” سرور می توانید بفهمید که کدام نسخه از آپاچی روی سرور نصب شده است. این کار به دو روش امکان پذیر است؛ هم می توان با استفاده از دستوری لیست پکیج های نصب شده را پیدا کرد و مشخص کرد که کل این پکیج چه ورژنی دارد.
rpm -qa | grep httpd
در روش دوم نیز می توان با تایپ دستور دیگری در کامند لاین ورژن خود آپاچی را تعیین کرد.
httpd -v
![ورژن آپاچی](/wp-content/uploads/2019/09/images-5.png)
3- مسیر پیش فرض کانفیگ آپاچی
مسیر پیش فرض کانفیگ آپاچی در سنتوس با دستور زیر قابل دسترسی است:
/etc/httpd
در ابونتو نیز از طریق دستور زیر می توان عمل کرد:
/etc/apache2
4- تعیین مسیر تنظیمات آپاچی
آپاچی در این مورد دقیقا شبیه سیستم عامل لینوکس است. در سیستم عامل لینوکس در مسیر /etc می توان فایل کانفیگ سرویس ها را پیدا کرد. در آپاچی نیز با کمک همین مسیر به کانفیگ های آپاچی می توانید دسترسی پیدا کنید.
![تنظیمات آپاچی](/wp-content/uploads/2019/09/Apache-GUI-Settings.png)
اگر از توزیع های با پایه redhat مثل سنت اواس استفاده شده باشد از دستور زیر استفاده می شود:
etc/httpd/conf/httpd.conf/
اگر از توزیع دبیان مانند ابونتو استفاده شده باشد، دستور زیر پیشنهاد می گردد:
/etc/apache2/apache2.conf
باید در این قسمت به دو نکته توجه داشته باشید؛ اول اینکه در نسخه های جدید اسم فایل از httpd به apache2 تغییر پیدا کرده است. مورد دوم این است که آپاچی با یوزر nobody اجرا می شود.
برای اطلاع از تفاوت بین سنتوس و ابونتو می توانید به مقاله مشخص شده مراجعه کنید.
5- پورت ها در آپاچی
آپاچی بر طبق استاندارد ها عمل می کند و از پورت 443 برای https و از پورت 80 برای http استفاده می کند. ضمن اینکه امکان تغییر این پورت ها در وب سرور آپاچی وجود دارد.
![نصب آپاچی](/wp-content/uploads/2019/09/apache-web-server-logo.png)
6- نصب آپاچی
نکته قابل توجه این است که وب سرور آپاچی را می توان بر روی همه توزیع های لینوکس و همچنین سیستم عامل هایی مثل ویندوز و مک نصب کرد. برای نصب آن بر روی سنتوس از دستور زیر استفاده می گردد:
yum install httpd
همچنین برای نصب آن روی ابونتو که بر پایه دبیان است از این دستور استفاده می شود:
apt-get install apache2
توجه کنید که این دستور ها برای مواقعی است که با یوزر root وارد شده باشید. در صورتی که با یوزر دیگری وارد شده اید باید ابتدا دستور sudo را به آن اضافه کنید.
7- تغییر پورت در آپاچی
اگر بخواهید پورت پیشفرض آپاچی را تغییر دهید، لازم است تا پارامتر Listen مربوط به http و https را در مسیر فایل کانفیگ تغییر دهید. مسیر این فایل در موارد قبلی عنوان شده است.
8- شرایط داشتن چند آپاچی روی سرور
اگر پورت های پیشفرض مربوط به آپاچی را تغییر دهید، می توانید چند آپاچی روی یک سرور داشته باشید. دلیل تغییر پورت های پیشفرض نیز جلوگیری از وقوع اختلال است.
![DocumentRoot](/wp-content/uploads/2019/09/network-with-web-server-1.jpg)
9- DocumentRoot
پارامتر DocumentRoot در فایل کانفیگ، یک مسیر پیشفرض است که لود شدن صفحه وب سایت در آن جا انجام می شود. این مسیر به طور پیشفرض روی /var/www/html قرار دارد. شما می توانید با تغییر این مسیر، برای هر دامنه ای که دارید یک DocumentRoot مخصوص به خودش را داشته باشید.
10- DirectoryIndex
DirectoryIndex اولین فایلی است که وب سرور آن را ترجمه می کند و سپس خروجی html آن را به کاربر نشان می دهد. در واقع پس از اینکه در خواست به سمت سرور ارسال می شود، وب سرور جستجو می کند تا فایل ایندکس صفحات را پیدا کند و این اولین فایلی است که به آن برخورد می کند. نام این فایل اغلب index.html یا index.php می باشد.
11- لیست فایل ها و فولدر ها
اگر وب سرور هنگام جستجو فایلی با نام index.html یا index.php پیدا نکند، لیست تمام فایل ها را نمایش می دهد. به این لیست که شامل تمام فایل ها است Directory Listing گفته می شود. البته با استفاده از دستور زیر می توان کاری کرد تا لیست فایل ها نمایش داده نشود. این کد باید در کانفیگ document root یا htaccess استفاده شود.
12- مسیر گزارشات یا لاگ ها
در فایلی به نام error_log، خطاهایی که رخ داده اند ذخیره می شوند و در فایلی به نام access_log، در خواست هایی که به سرور ارسال شده اند اما با خطا مواجه شده اند قرار خواهند گرفت. مسیر این دو فایل از طریق دستور زیر قابل دسترسی است:
access_log
![درخواست ها در آپاچی](/wp-content/uploads/2019/09/Workflow-of-apache-web-server.png)
13- خطای Connection reset by peer
این خطا یک مورد از خطاهای موجود در فایل error_log است. این خطا مربوط به زمانی است که پس از اینکه درخواستی به سمت وب سرور ارسال می کنید، قبل از اینکه پاسخ دریافت شود، صفحه را می بندید و بدین ترتیب درخواست خود را قطع می کنید.
14- Virtual Host
در موارد قبل گفته شد که می توان برای هر دامنه یک DocumentRoot تعریف کرد. در واقع چنین کاری توسط Virtual Host انجام می شود. بدین صورت می توان تنظیمات اختصاصی را برای هر دامنه انجام داد. یعنی امکان میزبانی تعداد زیادی دامنه توسط آپاچی و یک پورت فراهم است.
15- تفاوت Directory و Location
محل قرار گرفتن فایل ها و فولدر ها همان Directory است و Location مربوط به URL ها یا آدرس های اینترنتی است.