از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
وب سرور چیست؟ معرفی انواع وب سرور و تفاوتهای آنها
آشنایی با وب سرورهای Apache , Nginx , LiteSpeed , IIS , Google و .....
سرفصلهای مطلب
اگر بخواهیم بصورت پایهای به تشریح وب سرور بپردازیم ، میتوانیم بگوییم که وب سرور لایه ارتباطی دریافت درخواست کاربر جهت دسترسی به یک صفحه وب می باشد. به این درخواست HTTP Request گفته میشود. وب سرور چند قائده )Rule) امنیتی بر روی 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 ارائه میگردد.
این وب سرور از 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، تنظیمات ساعت جهانی و دهها تنظیم دیگر را در اختیارتان بگذارد. این فایل برای زمانی که به تنظیمات وب سرور دسترسی ندارید ( مثل هاست اشتراکی ) مناسب است و برای مواردی که کنترل کامل روی سرور دارید توصیه نمی شود ، چون میتواند باعث ایجاد کندی شود ، به همین دلیل بهتر است تنظیمات مستقیما در بخش Directory فایل کانفیگ اعمال شده تا کاریی بهتری داشته باشد
چند دستور قابلاجرا در فایل htaccess.
برای استفاده از دستورات زیر کافی است آنها را در فایل .htacces محلی که میخواهید این قوانین اجرا شود قرار دهید ( در این مثالهای فرض شده شما در هر محلی که قصد کنترل آن را دارید فایل .htaccess ایجاد می کنید ، اما روند درست معمولا این است که صرفا در شاخه اصلی فایل ایجاد شده و با مسیرهای مرتبط دستورات برای پوشه های پائین تر اعمال شود ،
لازم به ذکر است که فایل htaccess در مسیری که قرار دارد ممکن است با قوانین تعیین شده توسط پوشه بالاتر (Parent) لغو و قوانین سطح بالاتر اعمال شود
مسدود کردن دسترسی به دایرکتوری حاوی فایل htaccess.
order deny,allow
deny from all
مسدود نمودن دسترسی به دایرکتوری حاوی فایل htaccess. برای تمامی IP ها بهجز یک IP خاص
order deny,allow
deny from all
allow form ١٢٧.٠.٠.١
ریدایرکت یک مسیر از سایت به مسیر یا سایتی دیگر
Redirect ٣٠١ /old/file.html https://www.rasanegar.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 Max input vars
php_value max_input_vars 20000
برای مشاهده راهنمای کامل دستورات میتوانید به سایت زیر مراجعه نمایید.
https://www.askapache.com/htaccess
وب سرور LiteSpeed
وب سرور لایت اسپید مبتنی بر سرعت، امنیت، مقیاسپذیری و عملکرد بالا است، به همین دلیل این وب سرور بهترین انتخاب برای هاستهای اشتراکی است.
این وب سرور به دلیل استفاده از Mod_php در سرویسهای PHP ۵٠% سریعتر از وب سرور آپاچی برای پردازش اسکریپتهای PHP و ۶۰۰% سریعتر برای محتواهای استاتیک است.
این وب سرور نسبت به وب سرور آپاچی، منابع کمتری از سرور را مصرف میکند و در حالت کلی نیاز به سختافزار قوی ندارد، همچنین ترافیک بیشتری را پشتیبانی میکند و برای حفاظت از DDOS یکپارچه شده است. در حالت کلی تمام قابلیتهای وب سرور آپاچی را به نحوی کارآمدتر دارا است.
وب سرور لایت اسپید برخلاف آپاچی رویداد محور (event-driven) است یعنی برای هر کانکشن یک پروسس ایجاد نمیشود، در نتیجه منابع کمتری از سرور مصرف خواهد شد. میتوان گفت این یک حالت موثرتر برای مدیریت کانکشن هاست و بدین معنی است که با منابع کمتری از سرور، ترافیک بیشتری اداره میشود.
وب سرور لایت اسپید به دلیل تجاری و گران بودن هزینههای لایسنس مقرونبهصرفه نیست؛ اما به دلیل ضریب عملکرد و سرعتبالا محبوب شده است.
استفاده از litespeed به دلیل پنل تحت وب و تنظیمات آماده راحت است و کاربران نیز میتوانند بهسادگی آن را نصب و جهت راهاندازی وبسایت خود اقدام نمایند.
این وب سرور هم همانند آپاچی از فایل htacess. پشتیبانی میکند.
همچنین روی کنترل پنلهای سی پنل، دایرکت ادمین و … قابل پشتیبانی است.
وب سرور IIS
IIS یکی از محصولات شرکت مایکروسافت است. میتوان گفت این وبسرور تمام ویژگیهای آپاچی را برای برنامه های توسعه داده شده در پلتفرم های مایکروسافت مثل ASP.net و … داراست علاوه بر آن امکان اجرای برنامه های PHP و … نیز با نصب آن نرم افزار های خواهد داشت ( البته با سرعت و کیفیت کمتر نسبت به رقبای لینوکسی که بصورت Native آن کدها را اجرا میکنند ) ، نکته مهم در خصوص این وب سرور این است که IIS متنباز نیست و اضافه کردن ماژولهای شخصی و ایجاد تغییرات در آن دشوار است. ازآنجایی که این محصول توسط Microsoft روی ویندوزهای سرور ارائه شده با تمام سیستم عامل های سیستم عامل ویندوز برای نصب سازگار است و در صورتی که مشکلی وجود داشته باشد، تیم مایکروسافت پشتیبانی مناسبی برای آن ارائه میدهد.
وب سرور Nginx
این وب سرور Open Source و یا متنباز است. Ngnix در سال 2004 معرفی شده و با توجه به قابلیت مقیاسپذیری (event-driven) آن، بر مبنای استفاده همزمان از منابع سرور استوار بوده است. این وب سرور قابلیت هندل کردن بیش از ۱۰۰۰۰ کانکشن همزمان با کمترین میزان مصرف حافظه را دارد. این وب سرور (Nginx/PHP۵-FPM) بر روی سرورهای اشتراکی پیادهسازی نمیشود اما بهترین انتخاب برای سرورهای مجازی با حافظه محدود است.
وب سرور Nginx خود یک وب سرور مستقل است و فقط بهعنوان یک پروکسی معکوس مقابل آپاچی محسوب نمیشود. این وب سرور مد یکپارچه برای PHP ندارد و نیاز است با استفاده از سرور جداگانه PHP-FPM مثل PHP5 ارتباط برقرار کند.
سایتهایی با ترافیک بالا که با وب سرور nginx اجرا شدهاند میتوان به Facebook, Instagram Netflix, WordPress, Intel, CNN اشاره کرد. سیستمعاملهای unix ,windows، mac از nginx پشتیبانی میکنند.
مشکل Nginx:
این وب سرور با فایل htacess و همچنین کنترل پنلهای مختلف سازگاری ندارد. البته ممکن است از نظر برخی افراد این مورد مشکل محسوب نشود و برای آن راهحلهای مختلفی وجود داشته باشد ( واقعا همین طور اسن و تقریبا هر چیزی که در Htaccess قابل کنترل است در تنظیمات انیجنسک نیز قابل پیاده سازی است )
nginx به دلیل نیاز به تنظیمات دستی و مشکل بودن تنظیمات و کانفیگ، بهراحتی مورد استفاده قرار نمیگیرد. البته بعضی از کنترل پنلهای هاستینگ نظیر دایرکت ادمین، تدابیری را جهت نصب اتوماتیک آن اتخاذ نمودهاند. پس از وب سرور apache این وب سرور nginx است که اقتصادی و مقرونبهصرفه است و به همین دلیل به دومین وب سرور محبوب از نظر کاربران اینترنتی تبدیل شده است،
دیگر وب سرورهای کمتر شناخته شده و یا اختصاصی
وب سرورهای دیگری هم در دنیای وب در حال تحویل محتوا به کاربران هستند ، اما این وب سرورهای به دلیل اختصاصی بودن ، قدیمی شدن و پیچیدگی پیکربندی ها و یا در برخی موارد کاربردهای خاص بصورت عمومی استفاده نمی شود ، در زیر به عنوانی برخی از آنها و معرفی آنها به انگلیسی خواهیم پرداخت
وبسرور Litehttpd
lighttpd, pronounced “lighty” (don’t ask me why), is a free web server distributed with the FreeBSD operating system. This open source web server is fast, secure and consumes much less CPU power. Lighttpd can also run on Windows, Mac OS X, Linux and Solaris operating systems.
lighttpd web server
وبسرور Jigsaw
جیگساو ( وب سرور W3C( از کنسرسیوم WWW سرچسمه گرفته است ، یک وب سرور رایگان و متن باز که میتواند روی پلتفرم های مختلفی اجرا شود ، این وب سرور توسط جاوا نوشته شده و امکان اجرای کدهای CGI و PHP را دارد
وبسرور Klone
Klone, from KoanLogic Srl, includes a web server and an SDK for creating static and dynamic web sites. It is a web application development framework especially for embedded systems and appliances. No additional components are required when using Klone; thus, one can do away with an HTTP/S server or the active pages engine (PHP, Perl, ASP).
Klone web server
وبسرور Abbys
Abyss compact web server runs on all popular platforms – Windows, Mac OS X, Linux and FreeBSD. The personal edition is (X1) 100% free while the professional Abyss Web Server X2 has a small price tag of $60. Supports HTTP/1.1, secure connections, CGI/FastCGI, custom error pages, password protection and much more. The server also has an automatic antihacking system and a multiligual remote web management interface.
Abyss web server
وبسرور Oracle Web Tier
Includes two web server options with reverse proxy and caching solutions that lead to quick serving of web pages and easy handling of even the most demanding http traffic. The iPlanet Web Server, for example, is a high-performance server with enhanced security and multithreaded architecture that scales well on modern 64-bit multiprocessors.
Oracle Web Tier
وبسرور X5 (Xitami)
The cross-platform X5 from iMatrix Corporation is the latest generation web server using the company’s own multithreading technology (Base2) that makes it scalable to multi cores. As per the iMatrix, X5 can handle thousands of connections without difficulty and thus is useful for long polling in which connections from clients remain open for extended durations.
X5 (formerly Xitami) web server
وبسرور Zeus
The Zeus web server runs on Linux and Free BSD operating systems among others. It has been developed by Zeus technology Ltd. And is known for its speed, reliability, security and flexibility. The web server is used on some of the busiest web sites of the world including eBay. Zeus web server is not free and costs more than a thousand pounds.
Zeus Technology Ltd. – Zeus web server