وب سرور چیست؟ معرفی انواع مختلف وب سرور
اگر بخواهیم بهصورت پایه توضیح دهیم که وب سرور چیست، میتوانیم اینگونه بگوییم که وب سرور درخواست کاربر را جهت دسترسی به یک صفحه وب دریافت میکند. به این درخواست Http Request گفته میشود. وب سرور چند تست امنیتی بر روی Http Request شما انجام میدهد و صفحه وب درخواستی را به شما نمایش میدهد. البته با توجه به نوع صفحه درخواستی، وب سرور ممکن است جهت نمایش آن مجبور به اجرای چند Module اضافه بر روی سرور باشد. بهطور مثال وب سرور نیاز به یک ماژول اضافه جهت Handle نمودن درخواستها به صفحاتی است که با زبان برنامهنویسی PHP نوشته شدهاند.
Apache چیست؟
Apache محبوبترین، رایجترین و البته ارزانترین نرمافزار مورد استفاده جهت Handle نمودن Request های وب است که توسط Apache Software Foundation برنامهنویسی و پشتیبانی میشود و روی هر دو پلتفرم ویندوز و لینوکس قابلنصب است (بیشتر بر روی لینوکس/یونیکس مورد استفاده قرار میگیرد). این وب سرور بهصورت رایگان ارائه میشود و شاید یکی از دلایل محبوب بودن آن Open Source بودنش است که عدد ۴۳.۷ درصدی کل وب سرورهای دنیا را به خودش اختصاص داده است. وب سرور Apache، به دلیل انواع ماژول امنیتی در حالت پیشفرض امن، قابل اعتماد و سریع است، البته تنظیماتی در کانفیگ این وب سرور جهت افزایش این سه خصوصیت قابل انجام است که ما در این مقاله در ارتباط با آن صحبت نمیکنیم. همچنین جهت استفاده این وب سرور در محیطهای مختلف و پشتیبانی از بیشتر زبانهای برنامهنویسی مانند Python، Perl، PHP یا CGI یا …، Extension ها و Module هایی در دسترس است که میتوان جهت Extend نمودن وب سرور روی آن نصب نمود.
شاید به همین دلیل است که اکثر ارائهدهندههای خدمات هاستینگ برای وردپرس، Apache را بهعنوان وب سرور انتخاب نمودهاند. البته وردپرس بر روی دیگر وب سرورها نیز بهخوبی اجرا میشود.
وب سرور Apache در ۴ نسخه ۱.۳ و ۲.۰ و ۲.۲ و ۲.۴ ارائه شده است. با توجه به Open Source بودن پروژه حتماً میبایست نسخه آخر این وب سرور استفاده گردد؛ چراکه برای نسخههای قدیمی پشتیبانی از سمت تیم برنامهنویس ارائه نمیشود.
اگر بخواهیم مقداری حرفهایتر به قضیه بپردازیم، لازم است بگوییم Apache پروسههای خود را بر روی سرور با نام httpd که مخفف Http daemon است فراخوانی میکند. همچنین جهت مدیریت Authenticate ها در این وب سرور از ماژولهای mod_access، mod_auth، mod_digest و mod_auth_digest استفاده میگردد. وظیفه URL rewriting را ماژول mod_rewrite بر عهده دارد و در صورتی که قصد استفاده از پروکسی را داشته باشید، ماژول mod_proxy این کار را برایتان انجام میدهد. خدمات Secure Socket Layer یا SSL نیز توسط ماژول mod_ssl ارائه میگردد.
مقاله مرتبط: گواهی SSL چیست و چه تاثیری بر سئو دارد؟
این وب سرور از virtual Hosting نیز پشتیبانی مینماید، Virtual Hosting به شما اجازه میدهد بر روی یک سرور با یک Single IP با کمک سرویس DNS چندین دامنه را هاست کنید.
مشکل Apache:
مشکلی که در وب سرور آپاچی دیده میشود این است که این وب سرور در ترافیکهای بالا منابع زیادی از سرور اشغال میکند و کل سرور را با اختلال و قطعی مواجه میکند. در واقع این مشکل مربوط به ساختار آپاچی است، بدین صورت که برای هر کانکشن یک فرآیند (پروسس) ایجاد میکند بنابراین با توجه به اینکه هرکدام از این پروسس ها Ram و CPU نیاز دارند، عملکرد سرور تحت تأثیر قرار خواهد گرفت. وب سرور آپاچی بهصورت process-based تعبیه شده و به همین دلیل است که زمانی که سایت شما ترافیک و پروسسهایی بالایی دارد، سایت از سمت تأمین کننده هاست غیرفعال و پیشنهاد ارتقاء به سرور مجازی یا اختصاصی دریافت میکنید.
راهحل:
میتوان از پروکسی معکوس (apache+nginx) در مقابل آپاچی استفاده کرد. بدین صورت که محتواهای ایستا یا استاتیک مثل (images, css, js, html) توسط پروکسی اجرا شود و آپاچی تنها درخواستهای مربوط به php را هندل کند. البته به دلیل پیچیدگی در راهاندازی این قابلیت، شرکتهای هاستینگ کمی هستند که از آن استفاده میکنند.
فایل htaccess:
قابلیت دیگری که در این وب سرور وجود دارد، وجود فایلی با نام.htaccess است که میتواند در هر شاخه/پوشهای از هاست شما که برای Apache قابل دسترس است، ایجاد شده و تنظیماتی ازجمله محدود نمودن دسترسی IP ها به آن شاخه، URL Filtering، URL Redirecting و قرار دادن Authenticate برای آن شاخه، تنظیمات Cache، تنظیمات Error Handling، تنظیمات ساعت جهانی و دهها تنظیم دیگر را در اختیارتان بگذارد.
مقاله مرتبط: راهنمای استفاده از htaccess برای طراحان و توسعهدهندگان وب
چند مثال کاربردی در ارتباط با دستورات قابلاجرا در فایل htaccess.
- مسدود نمودن دسترسی به دایرکتوری حاوی فایل htaccess.
order deny,allow
deny from all
- مسدود نمودن دسترسی به دایرکتوری حاوی فایل htaccess. برای تمامی IP ها بهجز یک IP خاص
order deny,allow
deny from all
allow form 127.0.0.1
- ریدایرکت یک مسیر از سایت به مسیر یا سایتی دیگر
Redirect 301 /old/file.html https://www.hostiran.net/new/file
- فعال/غیرفعال نمودن نمایش خطای php
php_flag display_errors on
php_flag display_errors off
- ست نمودن default document برای دایرکتوری فعلی
DirectoryIndex [PAGE-NAME]
- فعال نمودن URL Rewrite
RewriteEngine On
- تغییر مقدار php value post max size
php_value post_max_size 40M php_value post_max_size 107646384
- تغییر مقدار php Max input vars
php_value max_input_vars 2000
برای مشاهده راهنمای کامل دستورات میتوانید به سایت زیر مراجعه نمایید.
https://www.askapache.com/htaccess
وب سرور LiteSpeed
وب سرور لایت اسپید مبتنی بر سرعت، امنیت، مقیاسپذیری و عملکرد بالا است، به همین دلیل این وب سرور بهترین انتخاب برای هاستهای اشتراکی است.
مقاله مرتبط: تفاوت بین هاست اشتراکی، سرور مجازی و سرور اختصاصی
این وب سرور به دلیل استفاده از Mod_php در سرویسهای PHP 50% سریعتر از وب سرور آپاچی برای پردازش اسکریپتهای PHP و ۶۰۰% سریعتر برای محتواهای استاتیک است.
این وب سرور نسبت به وب سرور آپاچی، منابع کمتری از سرور را مصرف میکند و در حالت کلی نیاز به سختافزار قوی ندارد، همچنین ترافیک بیشتری را پشتیبانی میکند و برای حفاظت از DDOS یکپارچه شده است. در حالت کلی تمام قابلیتهای وب سرور آپاچی را به نحوی کارآمدتر دارا است.
وب سرور لایت اسپید برخلاف آپاچی رویداد محور (event-driven) است یعنی برای هر کانکشن یک پروسس ایجاد نمیشود، در نتیجه منابع کمتری از سرور مصرف خواهد شد. میتوان گفت این یک حالت موثرتر برای مدیریت کانکشن هاست و بدین معنی است که با منابع کمتری از سرور، ترافیک بیشتری اداره میشود.
وب سرور لایت اسپید به دلیل تجاری و گران بودن هزینههای لایسنس مقرونبهصرفه نیست؛ اما به دلیل ضریب عملکرد و سرعتبالا محبوب شده است.
مقاله مرتبط: خدمات میزبانی وب (هاست) چگونه بر رتبه بندی سایت تأثیر میگذارد؟
استفاده از litespeed به دلیل پنل تحت وب و تنظیمات آماده راحت است و کاربران نیز میتوانند بهسادگی آن را نصب و جهت راهاندازی وبسایت خود اقدام نمایند.
این وب سرور هم همانند آپاچی از فایل htacess. پشتیبانی میکند.
همچنین روی کنترل پنلهای سی پنل، دایرکت ادمین و … قابل پشتیبانی است.
وب سرور IIS
IIS یکی از محصول شرکت مایکروسافت است. این وبسرور تمام ویژگیهای مشابه آپاچی را داراست، اما این وب سرور متنباز نیست و اضافه کردن ماژولهای شخصی و ایجاد اصلاحات در آن دشوار است. ازآنجایی که این محصول توسط microsoft ارائه شده با تمام سیستم عامل های سیستم عامل ویندوز سازگار است و در صورتی که مشکلی وجود داشته باشد، تیم مایکروسافت پشتیبانی مناسبی برای آن ارائه میدهد.
وب سرور Nginx
این وب سرور Open Source و یا متنباز است. Ngnix در سال ۲۰۰۴ معرفی شده و با توجه به قابلیت مقیاسپذیری (event-driven) آن، بر مبنای استفاده همزمان از منابع سرور استوار بوده است. این وب سرور قابلیت هندل کردن بیش از ۱۰۰۰۰ کانکشن همزمان با کمترین میزان مصرف حافظه را دارد. این وب سرور (Nginx/PHP5-FPM) بر روی سرورهای اشتراکی پیادهسازی نمیشود اما بهترین انتخاب برای سرورهای مجازی با حافظه محدود است.
وب سرور Nginx خود یک وب سرور مستقل است و فقط بهعنوان یک پروکسی معکوس مقابل آپاچی محسوب نمیشود. این وب سرور مد یکپارچه برای PHP ندارد و نیاز است با استفاده از سرور جداگانه PHP-FPM مثل PHP5 ارتباط برقرار کند.
سایتهایی با ترافیک بالا که با وب سرور nginx اجرا شدهاند میتوان به Facebook, Instagram Netflix, WordPress, Intel, CNN اشاره کرد. سیستمعاملهای unix ,windows، mac از nginx پشتیبانی میکنند.
مشکل Nginx:
این وب سرور با فایل htacess و همچنین کنترل پنلهای مختلف سازگاری ندارد. البته ممکن است از نظر برخی افراد این مورد مشکل محسوب نشود و برای آن راهحلهای مختلفی وجود داشته باشد.
nginx به دلیل دستی بودن و مشکل بودن تنظیمات و کانفیگ، بهراحتی مورد استفاده قرار نمیگیرد. البته بعضی از کنترل پنلهای هاستینگ نظیر دایرکت ادمین، تدابیری را جهت نصب اتوماتیک آن اتخاذ نمودهاند. پس از وب سرور apache این وب سرور nginx است که اقتصادی و مقرونبهصرفه است و به همین دلیل به دومین وب سرور محبوب از نظر کاربران اینترنتی تبدیل شده است.