مقایسه
در مقام مقایسه IIS و آپاچی میتوان گفت كه هر كدام دارای مزایا و معایبی نسبت به یكدیگر هستند. IIS فقط برای اجرا در ویندوز ساخته شده است بهخصوص نسخه ششم آن فقط در ویندوز 2003 قابلاجرا میباشد. اگر چه بسیاری از كارشناسان، این مسئله را نوعی نقطهضعف در ساختار IIS میدانند، برخی دیگر هماهنگی بسیار دقیق میان آن و ویندوز 2003 و سرویسهای دیگر سیستمعامل را كه باعث آسانتر بودن مدیریت IIS شده است، از نقاط برتری آن به حساب میآورند. بهخصوص در نسخه ششم جدا شدن ماژول مخصوص دریافت درخواستها(Request) از ماژول ویژه پردازش آنها، سهم بهسزایی در افزایش كارایی آن داشته است. در این روش ماژول Listener كه در كرنل مستقر شده است (Http.sys)، درخواستهای ارسالی از طرف كلاینتها را دریافتكرده و آنها را به ترتیب در داخل یك یا چند صف درخواست قرار میدهد. سپس IIS به این درخواستها با اختصاص حداقل یك پروسه كاری (Worker Process) به هر درخواست، پاسخ میدهد. این ویژگی باعث میشود حتی زمانی كه IIS به شدت مشغول پاسخدهی به درخواستهای قبلی است، ماژول جداگانهای كه در كرنل مستقر است، بتوانند درخواستهای جدید را دریافت كرده و حداقل آنها را در انتظار پاسخ قرار دهند. همچنین با این وضعیت، سیستمعامل میتواند كنترل بهتری را در اختصاص پروسههای لازم به IIS جهت پردازش درخواستها انجام دهد. در آپاچی هم جریان تا حدودی مشابه همین روال است. در این جا تعدادی ماژول با قابلیت انجام چند پردازش در واحد زمان (Multi Processing module) وظیفه دریافت و پاسخ به درخواستها را برعهده دارند. این ماژولها كه با استفاده از تكنولوژی APR یا Apache Portable Runtime برروی بسیاری از سیستمعاملهایی كه از كدهای كامپایل شده زبان C پشتیبانی میكنند، قابل اجرا هستند، با استفاده از امكانات و قابلیتهایMultithreading همان سیستمعامل میزبان به سرعت و به صورت همزمان درخواستهای رسیده از طرف كلاینتها را دریافت و پردازش میكنند.
امنیت
 |
نحوه عملكرد وب سرور |
یكی از مزایای، IIS ارتباط تنگاتنگ موجود بین آن و سیستمعامل است. این عامل سبب میشود تا IIS با توجه به اینكه سیستمعامل بسیاری از موارد امنیتی را قبل از رسیدن درخواست به وب سرور مورد بررسی قرار میدهد و هویت كاربران متصل را ارزیابی (Authentication) میكند، با اطمینان بیشتری به كار خود ادامه دهد. ضمن اینكه مدیر سیستم هم به دلیل اشتراك روشی كه در تأمین امنیت بین سیستمعامل و وب سرور وجود دارد، مجبور به دوباره كاری نمیشود. به عنوان مثال اگر شما در اكتیودایركتوری ویندوز 2003 دسترسی به یك یا چند فایل خاص را برای یك گروه از كاربران مجاز و برای گروهی دیگر غیرمجاز تعریف كرده باشید، این كاربران از هر روشی كه بخواهند به آن فایلها دسترسی پیدا كنند (حتی از طریق وب سرور) باید تابع قواعد تنظیم شده در اكتیودایركتوری باشند و این قوانین در IIS نیز حكمفرما است.
در مورد آپاچی نسخه دوم، مسئله به این سادگی و روانی نیست و قاعدتاً مدیریت امنیت در مورد آن پیچیدهتر و وقتگیرتر از IIS است. البته اكنون ماژولها و آداپتورهای جدیدی در آپاچی تعبیه شده كه امكان ارتباط بین آن و اكتیودایركتوری ویندوز یا Password یونیكس را بهوجود میآورد، اما باز هم میتوان گفت كه اصولاً با وجود این ارتباط هم در آپاچی، سیستمعامل و وب سرور هر كدام ساز خود را میزنند و آپاچی چندان از قواعد امنیتی تعریف شده در سیستمعامل تبعیت نمیكند. البته بسیاری از طرفداران آپاچی این مسئله را نوعی نقطه قوت آپاچی دانسته و با ذكر این نكته كه اولاً هر درخواست از طرف خارج باید از دو سد محكم سیستمعامل و وب سرور عبور كند و ثانیاً حفرههای امنیتی در سیستمعاملهای یونیكس و آپاچی بسیار كمتر از ویندوز و IIS است، استفاده از آپاچی را از لحاظ امنیتی دارای ریسك كمتری نسبت به IIS میدانند.
از لحاظ پروتكلهای امنیتی، هر دو وب سرور كلیه پروتكلها از جمله SSL ،IPsec و مكانیسمهای هویتسنجی Basic Digest LDAP را پشتیبانی میكنند.
كارایی
مقایسه كارایی آپاچی و IIS همواره از مشكلترین بحثهای تكنیكی دنیای وب سرورها بوده است؛ چرا كه این نوع مقایسه مستلزم بهوجود آوردن شرایط یكسان آزمایش به صورت منصفانه برای دو طرف رقابت است كه دست یافتن به این شرایط، كاری آسان و صددرصد قابل انجام نمیباشد. شاید به تصور خیلیها میتوان زمان دریافت، پردازش و پاسخ هر دو وب سرور به یك صفحه CGI یا JSP (كه مورد پشتیبانی هر است) را برروی یك سرور با مشخصات سختافزاری یكسان به معرض آزمون گذاشت، اما این هم به نمیتواند تنهایی پاسخگوی معمای كارایی باشد. چرا كه اولاً شاید هر دو وب سرور ادعای بهترین كارایی خود در تكنولوژی مشتركی مثل JSP را نداشته باشند. مثلاً شاید مایكروسافت ASP.NET را كه فعلا در آپاچی پشتیبانی نمیشود، بهترین عرصه برای نمودارشدن كارایی IIS بداند. ثانیاًٌ نباید فراموش كرد كه آپاچی، یك وب سرور چند سكویی میباشد و این باعث میشود تا صورت مسئله كمی پیچیدهتر شود و كسانی كه میخواهند به داوری مسابقه كارایی این دو وب سرور بنشینند را با سؤالی جدیدتر روبرو كند و آن هم این است كه IIS ویندوز را با آپاچی كدام سیستمعامل مقایسه كنیم ؟ آیا اصولاً آپاچی ادعایی بر ارایه بهترین كیفیت و كارایی خود برروی سیستمعامل مشترك ویندوز را دارد یا اینكه كماكان به سرعت خود برروی سیستمعاملهای یونیكس و لینوكس میبالد؟
 |
نمودار میزان رشد كاربرد وب سرورهای مختلف در ده سال اخیر |
در IIS 6 وجود مدلهای متعدد پردازشی كه ویژه كار در محیطهای چند پردازندهای در نظر گرفته شدهاند، سرعت اجرای برنامههای ASP و یا ISAPI را تا حد بسیار مطلوبی بالا بردهاند. همچنین درایور HTTP.sys در این نسخه قادر است به صورت مستقیم به اطلاعات موجود در cache (چه هارددیسك و چه حافظه اصلی) دسترسی پیدا كند بدون آنكه نیازمند وجود واسطهای مثل پروسههای كاری برای انجام این كار باشد. IIS همچنین قادر است صفحاتی را كه توسط عناصر دینامیك وب به صورت RunTime ساخته میشوند را در cache ذخیره كند تا در صورتی كه كلاینت بعدی هم بخواهد همین صفحه را تولید كند، به جای ساختن دوباره آن، از محل cache اطلاعات را بدون پردازش خاصی به سمت كلاینت مذكور بفرستد.
در آپاچی نیز اوضاع به همین گونه است. ماژولهای modperl وmodphp با استفاده از همان مكانیسم cache سرعت تولید صفحات دینامیك را همانند صفحات استاتیك به حداكثر خود میرسانند. همچنین دقیقاً مشابه فیلترهای ASP و ISAPI در IIS، در این جا هم ماژولهای Perl و PHP مستقیماً درخواستهای كلاینتها را مورد بررسی قرار داده و پاسخ لازم را ارسال میكنند و بدین وسیله از ارجاع درخواستها به محیط خارج آپاچی و كند شدن روند پاسخ جلوگیری میكنند.
مدیریت
در مورد مدیریت وب سرور، اختلافاتی بین دو وب سرور مذكور وجود دارد. آپاچی در نسخههای اولیه خود، وب سروری كاملا TextBased به نظر میرسید كه صرفاً با دستكاری مستقیم در فایلهای پیكربندی، تنظیم وب سرور و یا با استفاده از دستورات خط فرمان مدیریت آن امكانپذیر بود. اما اكنون بسیاری از واسط كاربرهای گرافیكی مثل Comanche قادرند یك محیط گرافیكی كاربرپسند و در واقع یك لایه بیرونی برای كار با آپاچی فراهم كنند. در این زمینه لیستی از واسط كاربرهای گرافیكی تهیه شده در سایت آپاچی به نشانی http://gui.apache.org موجود و قابل داونلود است. البته بسیاری از كاربران وجود مدیریت و تنظیمات Text Based را برای آپاچی یك مزیت عنوان میكنند. به عقیده این افراد، با این نوع پیكربندی آپاچی میتوان به سادگی و صرفاً با كپی كردن چند فایل از كامپیوتری به كامپیوتر دیگر همه تنظیمات یك سرور آپاچی را به سرور دیگر منتقل و از صرف وقت برای تنظیم دستی آن خلاص شد. این مسئله برای وب سروری مثل IIS كه تنظیمات خود را در قالب فایلهای باینری نگهداری میكند، قابل انجام نیست. البته در IIS 6 تنظیمات وب سرور در قالب فایلهای XML قابل دسترسی است. و بدینوسیله و با روش Import و Export میتوان تنظیمات یك وبسرور را به دیگری منتقل كرد. همچنین اینكه علاوه بر این كار، IIS 6 امكان مدیریت راهدور را از طریق دستورات خط فرمان و اجرای آن با پروتكل Telnet را مشابه آپاچی به كاربران خود داده است. در ضمن هر دو وب سرور، امكان مدیریت از طریق وب را به كاربران دادهاند. IIS از طریق Web Based Administration و آپاچی با استفاده از ابزاری به نام Webmin این تسهیلات را مهیا كردهاند.
قابلیت اطمینان
IIS 6 با جدا كردن حافظه و محل اجرای برنامههای وب از یكدیگر، باعث شده است در صورت بروز یك مشكل در هر یك از برنامههای در حال اجرا، این مشكل به سایر برنامهها و پردازشهای در حال اجرا سرایت نكند. در آپاچی نسخه دوم این عمل تا حدودی قابل انجام است. بدینمعنی كه اصولاً آپاچی با مكانیسمهای تشخیص و ترمیم خطا، از سرایت مشكل به قسمتها و پردازشهای دیگر جلوگیری میكند، اما به طور كلی نمیتواند همانند IIS عمل جداسازی برنامهها از یكدیگر را انجام دهد و در برخی موارد، بروز یك مشكل در یكی از پردازشها، مدیر وب را ناچار به راهاندازی مجدد (Restart) وب سرور میكند.
نكته دوم در این مقایسه هم به نفع IIS تمام میشود. بدین صورت كه در نسخه ششم آن امكان پیكربندی مجدد سیستم حتی در زمان اجرای پردازشها و بدوننیاز به راهاندازی مجدد وبسرور امكانپذیر است. این امكان كه به آن Live Configuration گفته میشود، سبب میشود مدیر سیستم بتواند بدون آنكه وب سرور و در نتیجه بسیاری از پردازشهای در حال اجرا و درخواستهای در حال پاسخگیری را متوقف كند، تنظیمات IIS را تغییر دهد و وب سرور را Refresh كند. در صورتی كه در آپاچی نسخه دوم، این عمل بدون بوت كردن مجدد وب سرور میسر نیست.
Apache 2.1 Alpha
در نسخه 1/2 آپاچی كه نسخه ابتدایی آلفای آن اكنون قابل دریافت و نصب است، وعدههای بسیاری برای افزایش كارایی یا پوشاندن نقاط ضعف نسخههای قبلی داده شدهاست. بسیاری از ماژولهای مربوط به chaching Authn/Authz مورد بازبینی قرار گرفته و نسبت به نسخههای سابقشان از كارایی بهتری برخوردارند. پروتكل http در این نسخه قادر است فایلها یا درخواستهای با بیش از دو گیگابایت را دریافت و پردازش كند. مكانیسم smart Filtering در آپاچی 1/2 از یك شیوه جدید فیلترگذاری پویا برخوردار است كه باعث میشود تا هر فیلتر براساس نوع درخواست یا پاسخی كه قرار است كنترل شود، فعال یا غیرفعال عمل كند. همچنین در این نسخه ماژول جدیدی برای ثبت كردن خطاهایی كه در ارتباط با كلاینتها رخ میدهد، تعبیه شده است. مدیریت حافظه stack برای پردازشهای در حال اجرا تغییریافته و اكنون آپاچی قادر است براساس سكویی كه برروی آن در حال اجرا است، میزان این حافظه را افزایش دهد. از لحاظ امنیتی به غیر از تغییرات ایجاد شده در ماژولهای مربوط به هویتسنجی كه بیشتر باعث افزایش سرعت فرآیندهای مربوط به آنها شده است، ماژول modssl نیز اكنون با پشتیبانی از RFC7182، قادراست به جای برقراری ارتباط به روش متنی (chear text)، از روش كدگذاری TLS برای این كار استفاده كند.
با سپاس از سایت ictna.ir