معرفی وب سرور آپاچه و آموزش نحوه بررسی لاگ های آن

آپاچه یا آپاچی از آوریل سال 1996 تا به امروز معروفترین و رایج ترین وب سرور (web server) در دنیای سرورها و میزبانی وب می باشد. این نام از قبیله آپاچی که از اولین اقوام ساکن آمریکا بوده اند اقتباس شده است. البته بسیاری از توسعه دهندگان نرم افزاری ( software developers ) از کلمه “patchy” به دلیل استفاده از patch های مختلف به عنوان وجه تسمیه آن نام برده اند. در سال 2009 آپاچه اولین وب سروری بود که به مرز بیش از 100 میلیون وب سایت رسید و این میزان در ژوئن سال 2013 به حدود 54.2% وب سایت های فعال در اینترنت رسید. اهمیت آپاچه را به عنوان یکی از اولین وب سرورها می بایست در نقش کلیدی آن در رشد دنیای وب ( world wide web ) دانست، این وب سرور در اصل بر پایه نسخه وب سرور ( NCSA HTTPd ( National Center for Supercomputing Applications می باشد که توسعه آن در سال 1995 با توقف پروژه NCSA صورت پذیرفت. از مهمترین ویژگی هائی که در موفقیت و پیشرفت آپاچه نقش بسزائی داشته است این است که این وب سرور بصورت متن باز می باشد و هزاران توسعه دهنده نرم افزاری در گسترش آن نقش داشته اند، ناگفته نماند توسعه این نرم افزار تحت نظارت بنیاد نرم افزاری آپاچه ( Apache Software Foundation ) صورت می پذیرد.

این وب سرور بر روی اکثر سیستم عامل های محبوب از جمه لینوکس ( Linux ) ، ویندوز ( Windows )، یونیکس ( FreeBSD ، Solaris ، OS X ، ( Unix  قابل نصب می باشد و از زبان های برنامه نویسی پی اچ پی ( php ) ، پایتون ( python ) و پرل ( perl ) پشتیبانی می نماید. کابر می تواند بر حسب نیاز ، از ماژول های مختلفی که توسط افراد مختلف توسعه یافته است به روی این وب سرور استفاده نماید. از محبوب ترین ماژول های مورد استفاده می توان از mod_evasive و modSecurity که ماژول امنیتی هستند و mod_rewrite که برای بهینه سازی آدرس های اینترنتی برای موتور های جستجو SEO کاربرد دارد و یا mod_gzip نام برد.

توصیه پارس پک برای استفاده از وب سرور آپاچه استفاده از سیستم عامل CentOS می باشد. با انتخاب کنترل پنل های دایرکت ادمین ( directadmin ) و یا سی پنل ( cpanel ) به روی سرور، وب سرور مورد نظر نیز بر روی سرور نصب و کانفیگ می گردد. لازم به توضیح است که  شما می توانید بصورت لوکال و بر روی کامپیوتر شخصی خود با سیستم عامل های ویندوز xp و یا ویندوز 7 و … نیز این وب سرور محبوب را به کمک نرم افزار هایی مانند xampp و wamp نصب نمائید.

 اهمیت آشنایی با وب سرور :

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

بررسی وضعیت وب سرور :

شما با وارد نمودن دستور زیر در سرور می توانید وضعیت وب سرور  آپاچه را مورد بررسی قرار دهید:

service httpd status

همچنین به کمک دستور زیر امکان راه اندازی مجدد ( restart ) این سرویس میسر بوده که در خیلی از مواقع می تواند منجر به رفع مسئله گردد.

 

service httpd restart

توجه : پیام هایی که حاوی warning هستند مشکلی در کارکرد وب سرور نخواهند داشت.

در صورتیکه امکان فعال کردن آپاچه فراهم نباشد، برای یافتن علت می بایست لاگ سرویس آپاچه مورد بررسی قرار گیرد، در ادامه نحوه مشاهده و بررسی لاگ آپاچه Apache Logs  توضیح داده می شود.

لاگ آپاچی :

برای مشاهده یک وب سایت؛ تمامی درخواست ها به وب سرور آپاچه ارسال می گردد و این وب سرور با توجه به تنظیمات و سطوح دسترسی به درخواست مربوطه پاسخ می دهد. کلیه این درخواست ها توسط آپاچه در سرور ذخیره می گردد و صاحب وب سایت در مواقع لازم می تواند لاگ آپاچه را مورد بررسی قرار دهد.  در صورتیکه نسخه پیشفرض آپاچه بر روی سرور نصب شده باشد، زمانیکه سرور فعال است، دو لاگ فایل ( Usage  Log (Access & error  و Apache Error Log  ذخیره می گردد. مسیر لاگ ها به نوع کنترل پنل و یا نوع نصب وب سرور بستگی دارد.

مسیر لاگ های آپاچی ، کنترل پنل Direct Admin :

بر روی سرور با کنترل پنل دایرکت ادمین  پس از اتصال به ssh می توانید از مسیر  var/log/httpd/ لاگ های مربوط به وضعیت سرویس آپاچه را ملاحظه فرمائید. مشاهده لاگ های مربوط به هر وب سایت به صورت جداگانه از مسیر var/log/httpd/domains/ امکانپذیر می باشد و می توانید موارد دسترسی و اشکالات و خطالاهای موجود به هر وب سایت را از این طریق مورد مطالعه قرار دهید.

مسیر لاگ های آپاچی ، کنترل پنل Cpanel :

دسترسی به لاگ آپاچه در کنترل پنل سی پنل ، پس از اتصال به ssh از طریق مسیر usr/local/apache/logs/ میسر می باشد.همچنین جهت دسترسی به لاگ های هر اکانت میبایستی از مسیر home/user/ وارد اکانت مورد نظر شده و محتویات پوشه Error Log مورد بررسی قرار گیرد.

بررسی لاگ یک وب سایت در کنترل پنل دایرکت ادمین:

دایرکت ادمین کنترل پنلی سبک و کارا می باشد و بخش پشتیبانی پارس پک با توجه به هزینه های بسیار کم لایسنس آن و نبود مشکلات تحریم ایران همواره استفاده از این کنترل پنل را به کاربران توصیه می نماید.  همچنین در بخش هاست ابری از کنترل پنل قدرتمند  دایرکت ادمین استفاده شده است، لذا در این بخش تلاش بر این است  تا بصورت خاص به تشریح نحوه بررسی لاگ آپاچه یک وب سایت به روی سرور با کنترل پنل دایرکت ادمین بپردازیم.
مراحل بررسی لاگ وب سایت مورد نظر به شرح زیر می باشد:
اگر از خدمات هاست ابری پارس پک استفاده می کند، ابتدا پس از ورود به بخش کاربری ، به پنل میزبانی ابری مراجعه فرمائید. پس از ورود به کنترل پنل، در بالای صفحه منوی Site Summary / Statistics / Logs را انتخاب فرمائید، در پنجره ای که باز می شود آمارهای کلی مربوط به اکانت مربوطه، از جمله مواردی همچون جزئیات مصرف پهنای باند نمایش داده میشود. برای دسترسی به لاگ های آپاچه کافی است برای مثال 100 خط آخر آن را مشاهده نمائید. در صورتیکه از سرور جداگانه استفاده می نمائید نیز می بایست با اکانت دسترسی یوزر وارد دایرکت ادمین شوید و یا پس از ورود از بخش list user و سپس login as user استفاده فرمائید.

 Apache Usage Log:

ریز درخواست ها و IP هایی که به سایت متصل شده باشند در Apache Usage Log ذخیره می گردد و زمان اتصال، لینکی که به آن متصل شده اند و برخی اطلاعات دیگر در آن قابل مشاهده خواهد بود. فرمت لاگ قابل مشاهده به شکل زیر است:

79.96.69.38 - - [15/Jun/2014:11:28:41 +0000] "POST /wp/wp-content/themes/wptypo/js/utf.php HTTP/1.1" 200 569 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.7.6)"

 

%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-agent}i"

 

127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326

در وهله اول خطوط بالا پیچیده به نظر می آیند ، اما با بررسی بیشتر و شرح هر پارامتر می توانید اطلاعات بسیار مهمی را از آن استخراج نمائید. این لاگ نشان دهنده موارد زیر می باشد:

127.0.0.1 /  %h  :
این پارامتر IP سیستمی که درخواست را به سوی سرور ارسال نموده است را نمایش می دهد.

%l :
این پارامتر مشخص کننده هویت دستگاهی است که درخواست را ارسال کرده و بر اساس استاندارد RFC 1413 عمل می کند، اما تقریبا در هیچ موردی نمی توان برای مبنای آن حساب نمود و اصولا آپاچه بدلیل همین ناکارآمدی حتی تلاشی برای شناسایی آن نمی نماید. خط تیره در لاگ ( – ) نیز به معنای آن است که هیچ اطلاعاتی در این زمینه موجود نیست.

u% /  Frank :
شناسه کاربری شخصی که درخواست اتصال به سایت داشته است از طریق HTTP authentication

%t برابر است با [10/Oct/2000:13:55:36 -0700] :
این پارامتر زمانیکه درخواست به سمت سرور ارسال شده است را ثبت می نماید، فرمت زمان اتصال به صورت زیر می باشد:

[day/month/year:hour:minute:second zone]
day = 2*digit
month = 3*letter
year = 4*digit
hour = 2*digit
minute = 2*digit
second = 2*digit
zone = (`+’ | `-‘) 4*digit

: “GET /apache_pb.gif HTTP/1.0″ (\”%r\”) 

درخواست ارسالی از سوی کاربر داخل گیومه قرار می گیرد که بسیار دارای اهمیت می باشد. برای مثال در اینجا نکته یک ، متد استفاده شده GET می باشد ؛ نکته دوم  ، درخواست مشاهده فایل /apache_pb.gif توسط کاربر ارسال شده است و نکته سوم، از پروتکل HTTP/1.0 استفاده شده است.

200 (%>s) : 

یکی از مهمترین اطلاعات در همین پارامتر نمایش داده می شود، اعدادی که با 2 شروع می شوند، نشان دهنده موفقیت آمیز بودن اجرای عملیات هستند، به همین ترتیب رقم ابتدایی 3 به معنای ریدایرکت ، رقم ابتدایی 4 به معنای وجود مشکلی از سوی کاربر است ( برای مثال فایل مورد درخواست وجود ندارد) و خطای 5 به معنای وجود اشکالی در سمت سرور می باشد.

2326 (%b) : 

این پارامتر ، میزان سایز فایلی که کاربر دریافت کرده است را نشان می دهد، اگر هیج فایلی برگردانده نشده است علامت – نمایش داده می شود.

 : “%{Referer}i” “%{User-agent}i”

در نهایت در برخی شیوه های نمایش لاگ،  مشخصات مرورگر و نوع سیستم عامل کاربر که از طریق آن اقدام به ارسال درخواست نموده است ثبت می گردد.

 لاگ خطا های سرویس آپاچه ( Apache Error Log ) :

در صورتیکه سرویس آپاچه شما با مشکل روبرو است، از این بخش می توانید به بررسی علل آن بپردازید. در صورتیکه از دایرکت ادمین استفاده می کنید می توانید از مسیر var/log/httpd/error_log/ استفاده فرمائید.

یک نمونه خطا:

[Wed Oct 11 14:32:52 2000] [error] [client 127.0.0.1] client denied by server configuration: /export/home/live/ap/htdocs/test

موارد نمایش داده شده در پیغام فوق به تفکیک به شرح زیر می باشند:

– بخش اول :  مربوط به تاریخ و ساعتی ست که خطا رخ داده است.
– بخش دوم : در این بخش نوع خطا بر اساس طبقه بندی هائی که در ادامه به آنها اشاره میشود، نمایش داده شده است:

Debug : لاگ هایی که از آنها جهت  اشکال یابی (debug) می توانید استفاده فرمائید.

Error : موارد خطاهایی که ممکن است همچنان آپاچه به کارکرد خود ادامه دهد.

FATAL : این نوع پیغام خطا مربوط به مواردی است که مطمئنا دیگر آپاچه کارکرد صحیح خود را نخواهد داشت.

TRACE : این نوع پیغام اخطار مشابه debug می باشد که اطلاعات بیشتری را نسبت به آن گزارش می دهد.

Warning : اخطارها چندان دارای اهمیت نیستند و معمولا نیازی به بررسی ندارند.

Information : اطلاعات کلی را در اختیار قرار می دهند.

– بخش سوم : به آدرس ای پی کابری که خطا را ایجاد نموده است اشاره دارد.

– بخش چهارم :  مربوط به متن خطا و مسیری که در آن خطا رخ داده است می باشد.

 آمار ها و تحلیل ها ( statistics and analysis ) :

چنانچه ابزار Domain Awstats  بر روی سرور فعال شده باشد، می توانید گزارش کاملی را از آمارها و تحلیل های مرتبط با یک دامنه دریافت و مطالعه نمایید. لازم به توضیح است که این ابزار در خدمات هاست ابری پارس پک فعال می باشد و شما می توانید از طریق کنترل پنل جزئیات آن را مطالعه فرمائید. تعداد بازدید، میزان مصرف پهنای باند و تعداد کلیک های بازدید کننده ها در زمانهای مختلف (بر اساس زمان) و مواردی همچون اینکه بازدید از طریق چه مرورگرهایی صورت گرفته و اطلاعاتی در مورد برخی خطاهای دریافت شده در هنگام بازدید سایت را می توان در این آمارها مورد مطالعه قرار داد.

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

– timezone : در این قسمت می توانید تعیین کنید که زمان محلی برای اسکریپت سایت شما بر اساس کدام موقعیت زمانی ( Time Zone ) باشد.
– max_execution_time : حداکثر مدت زمان اختصاص یافته برای پردازش یک درخواست را می توانید از این طریق کنترل نمائید.
– upload_max_filesize : حداکثر میزان حجم فایلی که کاربر می تواند بر روی سایت آپلود نماید را تعیین می کند.
– post_max_size : حداکثر میزان حجم درخواست که کاربر می تواند به سمت سرور  ارسال نماید را مشخص میکند. معمولا حجم این مورد میبایستی بالاتر از upload_max_filesize باشد.
– memory_limit :  این ابزار میزان اختصاص رم  را برای پردازش هر درخواست کنترل می نماید.
– max_input_vars : تعیین کننده حداکثر تعداد متغیرهای دریافتی از طریق یک کاربر می باشد.