مگر میشود اسم بیلگیتس و مایکروسافت روی محصولی در حوزهٔ تکنولوژی باشد و آن محصول حرفی برای گفتن نداشته باشد؟ وب سرور IIS از آن دسته محصولات بیسروصدای مایکروسافت است که گوشهای نشسته و کارش را بهدرستی انجام میدهد!
در این مقاله بررسی خواهیم کرد که IIS چیست و در مقایسه با رقبای خود چه مزایا و معایبی دارد. همچنین نسخههای مختلف آن را بررسی میکنیم و نحوهٔ نصب را توضیح میدهیم.
قبل از آن بیایید تعریف کوتاهی از خود وبسرور داشته باشیم.
مروری بر تعریف وبسرور
وبسرورها نرمافزارهایی هستند که ارتباط میان کلاینت (مثل مرورگر کاربران) و سرور را برقرار میکنند.
به زبان سادهتر، این نرمافزارها، محتوای سایت را از سرور دریافت و ذخیره میکنند؛ سپس با توجه به نوع درخواستی که کاربران ارسال میکنند، پاسخ مناسب را از این محتوای ذخیرهشده به آنها میفرستند. کار وبسرور درست مثل صندوقدار یک رستوران است که سفارش مشتریان را دریافت میکند و غذای درخواستی آنها را از آشپزخانه با پیک ارسال میکند. اگر میخواهید عمیقتر بدانید که وب سرور چیست و چطور کار میکند، پیشنهاد میکنیم به مقالهای که پیشتر در اینباره منتشر کردهایم سری بزنید. |
IIS چیست و چه وظیفهای دارد؟
Internet Information Services که با نام IIS نیز شناخته میشود، وبسروری از محصولات مایکروسافت است که روی سیستمعامل ویندوز اجرا و برای تبادل محتوای وب با کاربران اینترنت استفاده میشود.
این وبسرور برای میزبانی وبسایت یا اپلیکیشن با استفاده از فناوریهایی مثل ASP.NET و PHP به کار گرفته میشود.
IIS از زبانها و پروتکلهای مختلفی مانند HTTP ،SMTP ،HTML ،HTTPS /HTTP و FTP برای ارتباط و تبادل داده با کلاینت یا همان رایانههای راه دور استفاده میکند.
کلاینتها دستگاههایی مثل کامپیوتر هستند که در شبکه و از طریق اینترنت یا اتصال شبکه و بدون نیاز به نزدیکی فیزیکی میتوانند با دیتابیس ارتباط برقرار کنند. پروتکل هم، مجموعهای از قوانین و الگوهایی است که برای ارتباط بین دستگاهها و شبکهها در اینترنت توافق شده است. در واقع همین پروتکلها هستند که روش تبادل، انتقال و تفسیر اطلاعات و دادهها را در اینترنت و بین دستگاههای مختلف مشخص میکنند.
بهطور مثال، پروتکل HTTP میتواند بین مرورگر و وبسرور اطلاعاتی مثل صفحات وب، فرمها، تصاویر و سایر منابع را از طریق اینترنت انتقال بدهد. یا مثلاً پروتکل SMTP از طریق اینترنت ایمیلها را ارسال و دریافت میکند و FTP با همین اتصال راه دور، فایلهای بزرگ را بین دیتابیس و کامپیوتر با سرعت بالایی جابهجا میکند.
همانطور که گفتیم، IIS بهعنوان محصولی که برای ویندوز طراحی شده است، روی سرور یکپارچه و سیستمعامل ویندوزی اجرا میشود. البته میشود با استفاده از ابزارهای شخص ثالث (Third Party) این وبسرور را روی لینوکس و mac OS هم اجرا کرد؛ اما نباید توقع پایداری و عملکرد اصلی را از آن داشت.
وظایف وبسرور IIS
وب سرور IIS از یک طرف با زبانها و پروتکلهای مختلفی کار میکند، از طرفی هم بالاترین سطح عملکرد ویندوز را ارائه میکند. به همین دلیل، از این وبسرور بیش از هر چیز در ۴ کاربرد و حوزهٔ زیر استفاده میشود:
۱. میزبانی وب
سرور برنامه IIS میتواند میزبان برنامههای کاربردی وب سازمانی (Enterprise Web Applications)، وبسایتها و خدمات WCF باشد.
Windows Communication Foundation یا WCF یک فریمورک مخصوص ویندوز است که به برنامهنویسان اجازه میدهد تا با معماری مورد نظر خود و روشهای ارتباطی مختلف (HTTP ،TCP ،MSMQ) سرویسها را طراحی و پیادهسازی کنند.
طبق دادههای سایت techtarget همین حالا هم نزدیک به ۳۰ درصد از تمام وبسایتها روی IIS اجرا میشوند.
۲. گزارشگیری
لاگ یا گزارشهای سرور IIS، اطلاعات مهمی دربارهٔ سرور و وبسایت شما (مثل الگوهای استفاده یا روشهای بهینه استفاده از لاگ در نرمافزار، مشکلات عملکردی و…) را در خود دارد. تجزیهوتحلیل این فایلهای گزارش به شما کمک میکند مشکلات را بهسرعت شناسایی و عیبیابی کنید.
۳. فیلتر درخواستهای مشتریان
سادهترین روش برای حمله به یک وبسایت، ظاهرشدن در قالب مشتری یا بازدیدکنندهٔ معمولی است.
درست همانطور که دزدهای واقعی جوراب سرشان نمیکشند و با ظاهر عادی خودشان که شبیه بقیه مردم است وارد عمل میشوند، هکرها هم ظاهراً در شکل و شمایل کاربران عادی هستند و درخواستهایشان را همراه با «یوهاها» ارسال نمیکنند!
بنابراین ممکن است تشخیص حملهها کمی سخت باشد.
سرور مایکروسافت IIS برای این مشکل یک ماژول فیلتر درخواست یا request filter module ارائه کرده است. با این ماژول میتوانید بهراحتی درخواستهای مشکوک روی سرور را اسکن و فیلتر کنید.
مثلاً ممکن است هکرها با درج یک کد مخرب در URL، درخواستی بهسمت سرور ارسال کنند. با وجود این فیلتر، سرور میتواند بلافاصله پس از دریافت URL، آن را Drop و از آسیب احتمالی جلوگیری کند.
۴. پشتیبانی بومی
IIS بهطور بومی از فریمورکها (قابلیتی برای استفاده از دستورالعملها، کتابخانهها، رابط کاربری و سایر امکانات) و کتابخانههای NET. مایکروسافت (کتابخانهای جامع از دستورات شرکت Microsoft) پشتیبانی میکند و به توسعهدهندگان اجازه میدهد بهسرعت برنامههای وب ASP.NET را در IIS بسازند، آنها را مستقر و مدیریت کنند.
خب، تا اینجا فهمیدیم که وبسرور iis چیست و چه وظایفی دارد. حالا یک سؤال مهم پیش میآید:
وب سرور IIS چگونه کار میکند؟
وب سرور IIS با فریمورک ASP.Net کار میکند. ASP.NET Core آخرین نسل از Active Server Page و یک موتور اسکریپت سمت سرور است که صفحات تعاملی سایت را ایجاد میکند.
برای مثال با این فریمورک میتوانید یک صفحه تعاملی ساده بسازید که تعداد کلیکهای یک دکمه را نشان دهد و هر بار که روی دکمه کلیک میشود، این افزایش کلیک را بهروز کند.
خب حالا روند کار چطور است؟
در ابتدا کاربران درخواستی را از مرورگر خود ارسال میکنند. IIS این درخواست را دریافت کرده و آن را به برنامه ASP.NET Core میفرستد تا پردازش شود. سپس ASP.NET Core پاسخ را به IIS ارسال میکند و IIS آن را به شکل درست و قابلدرک برای کاربری که درخواست کرده بود، ارسال میکند.
اگر اسم ASP.NET Core برایتان آشناست اما درست آن را بهخاطر نمیآورید، باید بگوییم که بسیاری از برنامههای کاربردی مثل پلتفرمهای وبلاگ و بسیاری از CMSها مثل DotNetNuke با این فریمورک نوشته شدهاند.
نکته: اگر توسعهدهنده هستید و از IIS استفاده میکنید، با کمک ابزارهایی مثل WebDav و Microsoft Visual Studio میتوانید وبسایت خود را بهصورت مستقیم و یکپارچه ایجاد کنید.
نحوه پردازش و پاسخدهی به درخواستها توسط IIS
فرآیند پردازش در وبسرورها به دو صورت انجام میشود:
- روش تکرشتهای یا single threaded
- روش چند رشتهای یا Multi Threaded
روش اول را تقریباً میشناسیم. در روش تکرشتهای یا single threaded (مثل Node.js) یک رشتهٔ اصلی وجود دارد که مسئول پردازش درخواستها است.
البته نام این روش بهعنوان «تک»رشتهای، ممکن است کمی گمراهکننده باشد. در این روش یک thread مسئول رسیدگی به درخواستها میشود، اما میتوان برای برخی از درخواستها (مثل دسترسی به سیستم فایل) از رشتههای کمکی هم استفاده کرد.
یعنی علاوه بر رشتهٔ اصلی، چند ورکر به هستهٔ اصلی اضافی شوند و پردازش درخواستهای مشخصی را برعهده بگیرند.
فرض کنید که در یک اداره، رسیدگی به تمام امور برعهده مدیر باشد. این مدیر احتمالاً فرصت نمیکند تمام کارها را بهموقع تحویل دهد. گاهی هم میتواند دستیارهایی (مثل ورکرهای وب) استخدام کند تا در کارهای سبکتر به او کمک کنند.
اما در روش دوم (Multi Threaded)، که IIS و پسرعموی جوانتر آن IIS Express از آن استفاده میکنند، کار بسیار سریعتر پیش میرود.
در این روش برخلاف روش قبل، یک thread اصلی مسئول پردازش تمام درخواستها نمیشود. یعنی یک مدیر، مسئول رسیدگی به تمام امور نیست؛ بلکه درخواستها به فضای مجازیی به نام Thread Pool یا استخر رشته وارد میشوند.
در این استخر، چندین Thread با ظرفیتهای مشخصی وجود دارند. زمانی که درخواست وارد استخر میشود، هر رشتهای که ظرفیت خالی داشته باشد و بتواند پردازش را در کوتاهترین زمان ممکن انجام بدهد، مسئول رسیدگی به آن میشود.
فرض کنید در شرکت دیگری، بهجای یک مدیر، هیئتی از مدیران وجود دارد که هریک تخصص و ساعت کاری مشخص خودش را دارند. اگر پروژه جدیدی وارد این شرکت شود، هر مدیری که وقت خالی و تخصص کافی برای رسیدگی به آن را داشته باشد، پروژه را برعهده میگیرد. به این ترتیب پروژهها همیشه سروقت تحویل داده میشوند.
حالا که نحوه کار وب سرور iis را هم شناختیم، بد نیست مقایسهای هم بین آن و وبسرورهای مشابه داشته باشیم.
مقایسۀ وبسرور IIS و آپاچی
اگر نمیدانید وبسرور آپاچی چیست پیشنهاد میکنیم پیش از خواندن این بخش، سری به لینک بزنید. اگر این وبسرور را میشناسید باید بگوییم که تفاوتهای بین IIS و Apache عبارتند از:
- IIS با ویندوز، بستهبندی یا packaging شده، در حالی که آپاچی رایگان و منبعباز است.
- IIS فقط بر روی ویندوز اجرا میشود، اما Apache میتواند تقریباً بر روی هر سیستمعاملی از جمله macOS، UNIX و Linux اجرا شود.
- آپاچی عملکرد بهتری روی لینوکس از خود به نمایش میگذارد.
- IIS با سایر پیشنهادات مایکروسافت مانند دات نت و زبان برنامهنویسی ASPX ادغام میشود.
- ویژگیهای امنیتی IIS آن را به گزینهای امنتر از آپاچی تبدیل کرده است.
- فناوری پایهای IIS با رابطهای وب استاندارد در سراسر جهان سازگار است.
- IIS دارای یک داشبورد کمک را برای رسیدگی به اکثر مشکلات بهصورت داخلی ارائه میکند، در حالی که پشتیبانی از Apache از طرف جامعه کاربران انجام میشود.
به عبارت دیگر، IIS توسط تیم مایکروسافت پشتیبانی میشود؛ یعنی به کاربران این وبسرور، یک داشبورد تخصصی ارائه میشود که میتوانند مشکلات خود را از طریق آن گزارش کنند و از کارمندان مایکروسافت پاسخ بگیرند.
در حالی که آپاچی وبسروری منبعباز است که توسط سازنده پشتیبانی نمیشود؛ بلکه جامعه کاربران در فرومها و انجمنها دربارهٔ مشکلات و راهحلها با یکدیگر تبادل نظر میکنند. بهروزرسانی و عیبیابی هر نسخه نیز توسط همین توسعهدهندگان آزاد انجام میشود.
مقایسۀ وبسرور IIS و NGINX
اگر با وبسرور انجین اکس آشنا هستید و میدانید چطور کار میکند، احتمالا دلتان بخواهد مقایسهای هم میان IIS و Nginx انجام دهید.
شاید به دلیل نوع کارکرد متفاوت این دو وبسرور نتوان آنها را بهصورت خطی مقایسه کرد، پس بیایید بهجای این کار، ۳ فاکتور اصلی برای انتخاب وبسرور یعنی هزینه، پشتیبانی و قابلیتها را در این ۲ وبسرور مقایسه کنیم:
۱. هزینه
وبسرور NginX متنباز و رایگان است؛ اما ISS مثل تمام محصولات دیگر شرکت مایکروسافت به خرید لایسنس نیاز دارد.
۲. پشتیبانی
وبسرور متنباز NginX توسط جامعه توسعهدهندگان و کاربران، بهروز و از طریق فرومها و انجمنها درباره مشکلات آن اطلاعرسانی میشود؛ اما شرکت مایکروسافت، پشتیبانی کامل IIS را برعهده دارد.
۳. قابلیتها
وبسرور Nginx به سرعت پروکسی خود مشهور است و IIS تاکنون نتوانسته در این فاکتور بهتر ظاهر شود.
پروکسی سرور NginX تاثیر چشمگیری روی سرعت دارد، چرا که میتواند بهعنوان واسطه میان کاربر و سرور، میزان حجم و لود را تقسیم کند. علاوه بر این با فشردهسازی محتوا و کشینگ و مدیریت هوشمندانه ریکوئست و ریسپانس میتواند در کوتاهترین زمان پردازش و پاسخگویی بهتری را انجام دهد.
از طرف دیگر رویدادمحور بودن Nginx باعث افزایش پرفورمنس شده و میتوان گفت که آن را به بهترین گزینه برای VPS یا سرور مجازی تبدیل میکند.
پیشنهاد خواندنی: سرور مجازی چیست و چه کاربردی دارد؟
در مقابل IIS هم قابلیتهای منحصربهفردی دارد که در انجین اکس دیده نمیشود. مثلاً امکان استفاده از فریمورک NET. و اسکریپتهای ASP و سازگاری با ابزارهای MSS SQL, ASP, Active Directory ویژگی منحصربهفرد IIS است.
بهعلاوه، در مقابل ویژگی رویدادمحوری NginX، وب سرور IIS هم از Thread Pool استفاده میکند و میتواند سرعت پاسخگویی مناسبی ارائه کند.
با همه اینها، IIS گرچه در محیطهای غیرویندوزی هم قابل استفاده است، اما نمیتواند در سایر سیستمعاملها بهترین عملکرد خود را ارائه کند. از طرفی نسبت به یک نرمافزار متنباز امکان شخصیسازی کمتری در اختیار توسعهدهندگان قرار میدهد.
وبسروری مثل Nginx با زبان پیکربندی NCL، امکان سفارشیسازی کامل تنظیماتی مثل قوانین Navigation و تعادل بار را ارائه میدهد؛ یا مثلاً آپاچی و لایت اسپید، بهعنوان نرمافزارهای متنباز به مخاطبان اجازه میدهند ماژولهای دلخواهی (مثلاً برای افزایش سرعت یا بالا بردن ظرفیت پاسخ) را به این وبسرورها اضافه کنند.
اما مایکروسافت، در هر بهروزرسانی ویژگیهایی به نسخههای قبل IIS اضافه میکند که خیلی هم قابل تغییر نیستند.
پیشنهاد خواندنی: کاربردهای انواع سرور مجازی (vps)
نسخههای مختلف وب سرور IIS
IIS از ابتدا تا کنون پابهپای مایکروسافت ویندوز تکامل یافته است. در ادامه نسخههای مختلف این وبسرور را از ابتدا تا آخرین نسخه موجود بررسی میکنیم.
نسخههای IIS 1.0 تا IIS 4.0
اولین نسخههای این وبسرور از ۱ تا ۵ بسیار قدیمی هستند و امروزه کاربرد چندانی ندارند.
IIS 1.0 در سال ۱۹۹۵ با Windows NT 3.51 ارائه شد.
IIS 2.0 با Windows NT 4.0 همگام شد.
IIS 3.0 که با Service Pack 2 Windows NT 4.0 همگام بود، محیط اسکریپتنویسی دینامیک Active Server Pages را معرفی کرد. این ویژگی که به اختصار ASP نامیده میشود، به وبسرور کمک میکند با استفاده از فناوری اسکریپتنویسی سمت سرور، از صفحات داینامیک و ریسپانسیو در سایت پشتیبانی کند.
IIS 4.0 بهعنوان یک بخش اضافی و مکمل با نام Option Pack برای ویندوز NT 4.0 منتشر شد. این برنامه جدید مدیریت مبتنی بر MMC اولین نسخهای بود که در آن میشد چندین نمونه از وبسرور و FTP را اجرا و آنها را براساس شماره پورت/نام میزبان از یکدیگر متمایز کرد.
این نسخه همان نسخهای بود که Thread Pool در آن معرفی شد. با این تفاسیر شاید بتوانیم اولین نسخه قدرتمند IIS را همین نسخه ۴ بدانیم.
شاید با کمی ارفاق بتوان گفت که نسخهٔ IIS 4.0 نقطه عطف مسیر IIS بود. چرا که در این نسخه ویژگیهایی به وبسرور اضافه شد که قدرت و امنیت آن را به طرز چشمگیری افزایش داد:
اول از همه این که مایکروسافت بالاخره رمزگذاری لایه سوکتهای امن (SSL) را در این وبسرور اعمال کرد. حالا وبسایتها و اپلیکیشنها در این وبسرور امنیت بالاتری را تجربه میکردند.
در این نسخه مایکروسافت MMC یا Microsoft Management Console را – که داشبورد تخصصیتری را برای مدیریت وبسرور و سرویسهای وابسته به آن است – ارائه کرد. با ارائه این کنسول میشد گفت که حالا IIS یک وبسرور حرفهای شده بود که از طریق کنسول آن FTPها اجرا و مدیریت میشدند، سرویسها بر اساس شمارهٔ پورت و نام از یکدیگر جدا میشد و… .
با وجود این داشبورد تخصصی و رونمایی از فرمتهای جدید ثبت لاگ، مانیتورینگ IIS را هم به سطح دیگری برد. علاوه بر این دو ویژگی داخلی، از نسخهٔ ۴ به بعد IIS میشد از ابزارهای Third Party هم برای ثبت و مانیتورینگ پیشرفته لاگ استفاده کرد.
اما از تمام اینها که بگذریم، پیشرفت اصلی IIS در این نسخه، اضافه کردن ویژگی Multi Thread و Thread Pool بود که بالاتر دربارهٔ تاثیر شگفتانگیز آن روی سرعت وبسرور صحبت کردیم.
نسخه IIS 5.0
این نسخه همزمان با ویندوز ۲۰۰۰ عرضه شد. روشهای احراز هویت اضافی، پشتیبانی از پروتکل WebDAV و پیشرفتهایی در ASP از این نسخه به وبسرور اضافه شد.
برای مثال، در این نسخه امکان ورود به حساب بدون وارد کردن رمز عبور و نام کاربری با استفاده از احراز هویت یکپارچه (از طریق تایید حساب کاربری ویندوز، اسکن سرتیفیکیت ویندوز، ابزار رمزنگاری Digest و…) فراهم شد.
در IIS 5.0 پشتیبانی از پروتکل Gopher هم پایان یافت و بهجای آن پشتیبانی از HTTP.SYS آغاز شد.
Gopher پروتکل اینترنتی اولیهای بود که برای توزیع و بازیابی اسناد از طریق اینترنت استفاده میشد. این پروتکل بهصورت خطی و با سرعت پایینی کار میکرد و توانایی ادغام و سازگاری با سایر ابزارهای وب را نداشت.
علاوه بر این، ویژگیهای امنیتی محدودی ارائه میکرد که قابل بهبود و سفارشسازی هم نبودند.
در مقابل HTTP.SYS پروتکلی بود که نهتنها وظیفهٔ بازیابی اسناد را با سرعت و امنیت بالاتری انجام میداد، بلکه ویژگیهای پیشرفته دیگری مثل اسکریپتنویسی سمت سرور، پردازش فرم، مدیریت Session، پشتیبانی از رمزنگاری SSL/TLS، سازگاری با فریمورکها و سایر ابزارها، مقیاسپذیری بالا و… را نیز ارائه میکرد.
نسخه IIS 6.0
شاید بتوان گفت اولین نسخهای از IIS که برای کاربردهای امروزی قابل استفاده است، همین IIS 6.0 است.
مایکروسافت نسخهٔ IIS 6.0 را به Windows Server 2003 اضافه کرد؛ اولین نسخهای که از IPV6 پشتیبانی میکرد؛ اما راستش را بخواهید هیچ بهروزرسانی دیگری نسبت به نسخهٔ قبلی نداشت. از نظر IIS این نسخه، حداقلهای مورد نیاز برای عملکرد در یک محیط سازمانی سریع را ارائه میکند.
نسخه IIS 7.0
IIS 7.0 تفاوت بزرگی با نسخههای قبل از خود داشت؛ یک بازنویسی و بازطراحی کامل در این نسخه صورت گرفت.
این بازنویسی شامل طراحی ماژولار جدیدی بود که امکان حملات را تا سطح قابلتوجهی پایین آورده بود و پرفورمنس را بسیار بالاتر از نسخههای قبلی تامین میکرد.
علاوه بر این، یک سیستم پیکربندی سلسلهمراتبی در این نسخه معرفی شد. این پیکربندی امکاناتی مثل استقرار سادهٔ سایت روی وبسرور، برنامهٔ مدیریتی جدید مبتنی بر فرمهای ویندوز، گزینههای جدید خط فرمان و افزایش پشتیبانی از فریمورک Net را فراهم میکند.
سیستم سلسلهمراتبی، سیستمی پیچیده برای تصمیمگیری در ماشینها است. این سیستم از طریق مقایسه دوبهدو، تمام حالتهایی را که یک پروسه میتواند انجام شود، بررسی میکند. همچنین تمام امکانات را با یکدیگر مقایسه و سپس بهینهترین روش را انتخاب میکند. به همین دلیل معرفی این پیکربندی در این نسخه، بهترین عملکرد IIS را به نمایش گذاشت.
IIS 7.0 با ویندوز Vista هم سازگاری دارد و در Vista برخلاف نسخههای قبلی، سقفی برای تعداد اتصالات مجاز در XP درنظر نمیگیرد. گرچه هنوز درخواستهای همزمان را محدود میکند.
به این ترتیب درخواستهای اضافی در صف پردازش قرار میگیرند که خب از پرفورمنس عالی فاصله دارد؛ اما به هر حال مانند آنچه در XP اتفاق میافتاد، این درخواستها رد نمیشوند.
نسخه IIS 7.5
نسخهٔ بعدی IIS با ویندوز ۷ و ویندوز سرور ۲۰۰۸ R2 ارائه شد. برای این که نسخهٔ ۷.۵ بتواند بهترین کارکرد خود را به نمایش بگذارد، تمام برنامههایی که در لیست Programs and Features در ویندوز برای این نسخه معرفی شدهاند، باید همیشه روشن باشند که خب این پیشنیاز، باعث مصرف بالای منابع میشود و شاید امروزه که تمرکز همهٔ ما روی بهینهبودن است، نتوانیم با آن کنار بیاییم.
اما IIS 7.5 ماژولهای WebDAV و FTP و همچنین مدیریت خط فرمان را در PowerShell تا حد مناسبی بهبود داده است. پشتیبانی از TLS 1.1 و TLS 1.2 و ابزار تجزیهوتحلیل بهترین روشها و جداسازی فرآیند برای استخرهای برنامه، از باقی تغییرات خوب در این نسخه هستند.
از ویژگیهای مثبت دیگر این نسخه باید به موارد زیر اشاره کنیم:
- ابزار آنالیز و تصمیمگیری سلسلهمراتبی برای بهینهترین عملکرد
- جدا کردن poolهای مربوط به فرآیندهای برنامه از سایر poolها
- پشتیبانی از TLS 1.1 و TLS 1.2 (پروتکلهای امن رمزنگاری داده)
نسخه IIS 8.0
این نسخه IIS فقط با Windows Server 2012 و Windows 8 در دسترس است. در این نسخه ویژگیهای جدیدی به IIS اضافه شده است:
- ویژگی SNI: اتصال SSL به نام میزبان بهجای آدرس IP
- Application Initialization: این ویژگی به شما امکان میدهد قبل از اینکه به درخواستهای کاربر در استخر رسیدگی شود، وظایف اولیه برای برنامه را مقداردهی کنید. مثلاً برای تجربهٔ کاربری بهتر، اولویت لود صفحات را تعیین کنید تا زمانی که چندین درخواست همزمان ارسال میشوند، درخواستهای مهمتر زودتر پردازش شوند.
- پشتیبانی از گواهی SSL متمرکز
- مقیاسبندی چندهستهای روی سختافزار NUMA: در این نسخه، طراحی مدرن NUMA جایگزین SMP شده است. چرا که در SMP محدودیت هسته CPU وجود دارد؛ این یعنی درخواستها باید در صف بمانند و رقابت کنند تا بتوانند از CPU استفاده کنند.
NUMA این مشکل را با محدودکردن مصرف از پردازندههای اصلی و اضافهکردن هوشمندانه nodeها حل میکند. یعنی همان میزان CPI را بهصورت هوشمندانهتر و موثرتری تقسیم میکند.
نسخه IIS 8.5
IIS 8.5 در Windows Server 2012 R2 و Windows 8.1 گنجانده شده است. تغییراتی که در این نسخه نسبت به نسخهٔ پیش ایجاد شده، عبارتند از:
- اضافهشدن امکان تعلیق idle worker:
در نسخههای پیشین IIS، اگر ورکری بیش از اندازه منتظر پردازش یک درخواست میماند، این درخواست بسته میشد تا سرعت باقی فرآیندها را کند نکند؛ اما مشکل این بود که اگر همان کاربر دوباره به سایت سر میزد، این درخواست تمامنشدهٔ قبلی جلوی درخواستهای جدیدش را میگرفت.
در این نسخه بهجای پایان دادن به idle worker، میشود این نوع فرآیندها را به تعویق انداخت تا در وقت مناسب خود انجام شوند و جلوی فرآیندهای جدید را هم نگیرند.
- فعالسازی سایت داینامیک:
پیش از نسخه ۸.۵ صفحات پویا (داینامیک) زیاد جدی گرفته نمیشدند؛ چون وبسایتهای زیادی هنوز استاتیک بودند. از این نسخه به بعد، ویندوز سرور پشتیبانی کامل خود را از تمام ویژگیهای صفحات داینامیک اعلام میکند.
- ویژگی certificate rebind:
تا پیش از این نسخه، نگهداری و تمدید هر نوع گواهی یا لایسنسی که برای ویندوز خریداری میکردید و زمان اعتبار و انقضا داشتند، کمی سخت بود؛ چرا؟
چون اولاً خودتان باید تاریخ تمدید را یادتان میماند و IIS به شما یادآوری نمیکرد، ثانیاً برای تمدید گواهی، باید تمام اقدامات لازم برای ثبت گواهی را از ابتدا تا انتها انجام میدادید.
در این نسخه، یک Task به گواهیها اختصاص داده شد که چندین روز قبل از پایان موعد تمدید به مدیر سرور هشدار ارسال میشود. زمانی که تمدید انجام شد با تکمیل تسک باقی اقدامات بهصورت خودکار انجام میشوند.
نسخه IIS 10.0
نسخهٔ ۱۰ ویندوز وبسرور IIS، گل سرسبد مایکروسافت است! در این نسخه تمام ویژگیهای هیجانانگیزی که از یک وبسرور انتظار داریم به IIS اضافه میشود. اجازه بدهید هر یک را بررسی کنیم:
- HTTP/2
پروتکل HTTP/2 امکانات پیشرفته بسیار زیادی را نسبت به HTTP 1.1 ارائه میکند که در این مطلب به آنها نمیپردازیم. اما همین را بدانید که پشتیبانی iis از HTTP2 باعث میشود اتصالها بسیار کارآمدتر انجام شوند و تأخیرهای لود تا حد قابلتوجهی کاهش پیدا کنند.
بیشترین تأثیر این ویژگی در بهبود ارتباط کاربران با مرورگرها خودش را نشان میدهد.
- IIS روی سرور نانو
نانو سرور نوع جدیدی از نصب وبسرورها است که در فضایی بسیار کوچک، وبسرور را نصب میکند. یعنی ویژگیهای غیرضروری برای سیستم را فاکتور میگیرد و ویژگیهای ضروری را با حجم بسیار پایین نصب میکند. جوری که نصب IIS 10 بدون هد برای ویندوز ۱۰ فقط ۶۴ بیت فضا اشغال میکند.
این صرفهجویی در فضا، تاثیر شگفتانگیزی روی سرعت دارد.
- اضافه شدن کانتینرها
تا قبل از این نسخه، وب سرور IIS با ماشینهای مجازی کار میکرد. ماشینهای مجازی، همان ابزارهایی هستند که هر یک سیستمعامل جداگانه خود را نیاز دارند تا بتوانند به چند برنامه یا سایت رسیدگی کنند. اما کانتینرها محیطهایی برای کار هستند که در عین مجزا بودن میتوانند همگی از یک سیستمعامل استفاده کنند.
این کانتینرها بسیار سبک هستند، مصرف بسیار پایینتری از منابع سرور مثل رم و CPU دارند و بسیار دقیقتر هم کار میکنند؛ یعنی اولاً خودشان از صحت عملکرد اپلیکیشن مطمئن میشوند و ثانیاً دیباگ و عیبیابی آنها سادهتر است.
جالبتر از همه این که کانتینرها قابل جابهجایی هستند و به مدیر سرور اجازه میدهند بهترین محیط کانتینر ویندوز را برای هر نوع کاری انتخاب کند.
- مدیریت آسان IIS
حالا میتوان گفت که با حضور نانو سرورها و کانتینرها، iis به وبسروری بسیار سبک تبدیل شده که مدیریت آن هم بسیار سادهتر از قبل است.
میبینید که مایکروسافت با عرضهٔ هر نسخهٔ جدید، ویژگیهای قابل توجهی را به IIS اضافه کرده است. حالا چندین سال از ارائهٔ نسخهٔ ۱۰ میگذرد و احتمالاً باید منتظر سورپرایزهای تازهای از این غول فناوری باشیم.
مزایای وب سرور IIS چیست؟
با به کارگیری هریک از نسخههای اخیر IIS از مزایای زیر برخوردار خواهید شد:
امنیت قوی
IIS دارای ویژگیهای داخلی احراز هویت، مجوز و کنترل دسترسی است تا امنیت برنامه وب شما را تقویت کند. در این وبسرور شما میتوانید دسترسی حسابهای سرپرست سیستم و برنامه را بهصورت جداگانه ایجاد کنید. سایر ویژگیهای امنیتی شامل این موارد است:
- فیلتر کردن درخواست به ترافیک لیست سفید/لیست سیاه
- مسدود کردن IP پویا
- رمزگذاری SSL و TLS
- فشردهسازی صفحه وب
- کنترلهای امنیتی خاص FTP
قابلیت بلک لیست/ وایت لیست به شما امکان میدهد IPهای مطمئن و امنی را که گاهی ممکن است رفتار مشکوک داشته باشند، از تشخیص اسپم خودکار در امان نگه دارید.
یعنی اگر برنامههای امنیتی به اشتباه برخی IPها را هرزنامه تشخیص میدهند و دسترسی آن را به سایت مسدود میکنند، با اضافه کردن این IP به وایت لیست این مشکل برطرف و آیپی امن اعلام میشود. یا برعکس، آیپیهای مشکوک و خرابکار که ممکن است رفتار سنجیدهای هم از خود به نمایش بگذارند را به لیست سیاه اضافه کرده و دسترسیشان را محدود کنید.
با فعالسازی گواهی SSL/TLS، میتوانید ارتباط HTTPS امن را فعال کنید و اطلاعات حساس مانند اعتبارهای ورودی را رمزگذاری کنید. جوری که هکرها در وسط راه انتقال داده حتی اگر به این اطلاعات دسترسی پیدا کنند، نتوانند مفهوم اصلی آن را پیدا کنند.
با استفاده از FTP در IIS هم میتوانید دسترسی به دایرکتوریهای خاص را محدود یا دستههای مختلف کاربران را از یکدیگر جدا کنید و به هر دسته مجوزهای عملیاتی خاص خود را بر روی فایلها بدهید.
Application Pools
Application pool یا استخر برنامه، فضایی است که برنامههای وب پیش از شروع هر عملیاتی در وبسرور به آن وارد میشوند؛ سپس شناسایی شده و به ورکر (فرآیند یا thread که وظیفه خاصی را بهصورت مستقل از thread اصلی انجام میدهد.) مخصوص خود سپرده میشوند.
به این ترتیب عملکرد هر برنامه بهصورت مستقل از دیگری انجام میشود. این یعنی برنامهها در حین اجرا در کار یکدیگر تداخلی ایجاد نمیکنند و حتی مهمتر از آن، نمیتوانند روی امنیت یکدیگر تاثیر منفی بگذارند. بنابراین اگر هریک از برنامهها آلوده باشد، نمیتواند باقی سیستم را آلوده کند.
مقیاس پذیری و قابلیت اطمینان
مقیاسپذیری (Scalability) یعنی سیستم بتواند در صورت روبهرو شدن با بار ترافیک بالاتر، توان بالاتر و متناسبی را به نمایش بگذارد.
در وب سرور IIS مدیریت منبع، بهبود عملکرد سرور، قابلیت توزیع بار بین سرورها و امکان افزایش ظرفیت ورودی سرور، مقیاسپذیری را تضمین میکند. چرا که در این وبسرور امکان استفاده از مزرعه سرور وجود دارد.
در مزرعه سرور، بار و ترافیک بین مجموعهای از سرورها تقسیم میشود. قابلیت ARR یا مسیریابی درخواست برنامه، به مدیران اجازه میدهد سرورها از مزرعه حذف یا به آن اضافه کنند و بهترین سرور را برای هر درخواست شناسایی کنند.
قابلیت اطمینان (Reliability) هم یعنی سرور بتواند بدون اختلال و توقف، خدمات ارائه کند. یعنی پشتیبانی از لاگ و خطا، راهاندازی مجدد خودکار، آپتایم بالا و بازیابی در صورت وقوع خطا را بهخوبی انجام دهد.
وجود این قابلیتها در IIS به شما اطمینان میدهد سرویس روان و بدون اختلالی را تجربه کنید.
مراحل نصب و پیکربندی iis
خیلی خب! اگر تصمیم خود را گرفتهاید و میخواهید از وب سرور IIS استفاده کنید، در این بخش موارد لازم برای نصب و سپس مراحل و پیکربندی آن را یک به یک توضیح خواهیم داد.
پیشنیازهای نصب iis
دیتاسنتری که از IIS استفاده میکند، باید به نرمافزارهای زیر مجهز باشد:
- Windows Server 2008 یا Windows Server 2008 R2
- NET Framework 2.0 یا نسخههای جدیدتر
در اختیار داشتن یک حساب فعال از گزینههای زیر نیز ضروری است:
۱. اطلاعات حساب مدیر محلی
برای نصب IIS شما به یک حساب مدیر محلی با نام administrator account و رمز عبور که بهعنوان حساب سرپرست در هر رایانهای که در مزرعه سرور قرار میگیرد، نیاز دارید.
مزرعه سرور، جایی است که تعداد زیادی سرور فیزیکی با قدرتمندتر شدن در پردازش، پرفورمنس، مقایسپذیری بالاتر و توزیع بار بهصورت مجازی به یکدیگر متصل میشوند تا توان و منابع خود را با یکدیگر به اشتراک بگذارند.
حساب مدیر یا «administrator account» هم یک حساب کاربری با امتیازات مدیریتی بالا بر روی سرورها (یا یکی از سرورها) در مزرعه سرور است. این حساب امتیازات و مجوزهای مورد نیاز برای تمام اقدامات در مزرعه سرور را دارد. این حساب را میتوانید در برنامه IIS Manager در ویندوز بسازید.
۲. حساب Domain در مزرعه سرور
اگر شما در مزرعه سرور ادمین نیستید و نمیتوانید حساب Administrator مزرعه را داشته باشید، میتوانید بهجای آن از حساب دامنه خود استفاده کنید. یعنی در گروه Administratorsهای مزرعه به رسمیت شناخته شده باشید و یک دسترسی حساب Domain Account داشته باشید.
۳. قرار گرفتن در اتصال شبکهای مزرعه سرور
اگر قادر به دریافت هیچکدام از حسابهای بالا نیستید، باید از راه دیگری اثبات کنید که در دارودستهٔ مدیریت سرورهای مزرعه سرور هستید. سادهترین روش برای اثبات، قرارگرفتن در شبکه این مدیران است.
میتوانید با قرار گرفتن در شبکه اترنت، WIFI یا سایر فناوریها شبکه مزرعه سرور که در آن امکان تبادل داده و ارتباط بین سرورهای مزرعه وجود دارد قرار بگیرید.
نحوه نصب iis
در این بخش نحوه نصب IIS را بر روی سروری که مایکروسافت ویندوز سرور ۲۰۱۲ R2، مایکروسافت ویندوز سرور ۲۰۱۶ و مایکروسافت ویندوز سرور ۲۰۱۹ اجرا میکند، توضیح خواهیم داد.
این مراحل برای نحوه نصب IIS با استفاده از مدیر سرور است:
- در صفحه شروع روی Server Manager کلیک کنید.
- در صفحه نویگیشن Dashboard و سپس Add roles and features را انتخاب کنید.
- در Add Roles and Features Wizard، در صفحه قبل از شروع، دکمه Next را انتخاب کنید.
- در صفحه Select install type، Role-based or feature-based install را انتخاب کنید و سپس دکمه Next را انتخاب کنید.
- در صفحه انتخاب سرور مقصد، Select a server from the server pool را انتخاب کنید، سرور خود را از لیست Server Pool پیدا و سپس دکمه Next را انتخاب کنید.
- در پنجره Select Server Roles، Web Server، IIS و سپس دکمه Next را انتخاب کنید.
- اگر کادر دیالوگباکس پیام Add features that are required for Web Server ظاهر شد، Add Features را انتخاب کنید.
- در صفحه Select features، .NET Framework N.NN را گسترش دهید و سپس ASP.NET N.NN را انتخاب کنید. (N.NN شماره نسخه را نشان میدهد که بسته به نسخه ویندوز سرور بین ۴.۵۰، ۴.۶۰ و ۴.۷۰ متفاوت است.)
- WCF Services را باز کرده و سپس HTTP Activation را انتخاب کنید.
- در دیالوگ باکس، بخش «Add features that are required for ASP.NET N.NN?» دکمه Add Features را انتخاب کنید.
سپس ویژگیهای زیر را اضافه کنید:
- ASP.NET 4.50، ۴.۶۰ یا ۴.۷۰
- ISAPI Extensions
- ISAPI Filters
- NET Extensibility 4.5, 4.60, or 4.70
اگر .NET Framework 3.5 نصب شده است، مراحل زیر را انجام دهید:
– گره ویژگی های .NET Framework 3.5 را گسترش دهید.
– HTTP Activate را انتخاب کنید.
– اگر دیالوگ باکس«Add features that are required for ASP.NET 3.5» ظاهر شد، دکمه Add Features را انتخاب کنید.
– در صفحه Select Features، دکمه Next را انتخاب کنید.
– در صفحه Web Server Role، دکمه Next را انتخاب کنید.
– در صفحه Select role services، بررسی کنید که خدمات نقش زیر حداقل انتخاب شده باشند.
– دکمه Next را انتخاب کنید.
– در صفحه تایید انتخاب های نصب، دکمه نصب را انتخاب کنید.
– در صفحه پیشرفت نصب، تأیید کنید که نصب شما با موفقیت انجام شده است و سپس دکمه بستن را انتخاب کنید.
– برای اطمینان از نصب درست وبسرور، مرورگر را راهاندازی و سپس https://localhost را در آدرس تایپ کنید.
وبسایت پیشفرض باز میشود و باید یک تصویر IIS را نمایش دهد.
پیکربندی وب سرور IIS
اگر میخواهید IIS را در ویندوز سرور ۲۰۱۹ پیکربندی کنید، کافی است مراحل سادهٔ زیر را طی کنید:
۱. تنظیم نقش وب سرور IIS
برای این کار وارد داشبورد مدیریت IIS شوید. “Add Roles and Features” را باز کنید. در Server Manager، به Manage -> Add Roles and Features بروید.
۲. انتخاب نوع نصب
روی دکمه Next در جادوگر «Add Roles and Features» کلیک کنید. نصب مبتنی بر نقش یا ویژگی را انتخاب کنید و روی Next کلیک کنید.
۳. انتخاب سرور مقصد
سرور مقصد، سروری است که میخواهید نقش وبسرور (IIS) را روی آن نصب کنید. در این نسخه از آنجایی که میخواهیم IIS را روی سرور محلی نصب کنیم، از این لیست local server را انتخاب و سپس روی Next کلیک میکنیم.
۴. تعیین نقش IIS
نقش «Web Server IIS» را انتخاب و سپس روی Next کلیک کنید.
۵. افزودن ویژگیها
برای افزودن ویژگیهای IIS روی دکمه «Add Features» کلیک کنید. سپس بهترتیب روی “Server Roles” و “Features” و Next کلیک کنید.
در این بخش میتوانید ویژگیهای مورد نیاز خود برای نصب IIS را انتخاب کنید و تیک بزنید. در این آموزش ما در حال نصب وب سرور IIS با ویژگیهای پیشفرض هستیم. بنابراین روی Next کلیک میکنیم.
۶. تعیین نقش سرویس
در این بخش از شما خواسته میشود نقش سرویس یا Role Services را انتخاب کنید. پیشنهاد میکنیم اگر هدف خاصی ندارید این بخش را بهصورت پیشفرض ذخیره کنید. چون پیشفرض پیکربندی سرویس در IIS به اندازه کافی خوب و قابل قبول است. پس روی Next کلیک کنید.
۷. تایید تنظیمات
تنظیمات را تایید کنید و روی دکمه Install کلیک کنید تا نقش وبسرور تایید و نصب شود.
۸. بستن wizard
پس از نصب موفق، دیگر نیازی به wizard ندارید. پس میتوانید روی دکمه Close کلیک کنید.
۹. بررسی اجرای وب سرور IIS
برای این که ببینید آیا وبسرور بهدرستی اجرا میشود یا خیر به صفحه اول برگردید. مرورگر را در سرور باز کنید و سپس Server HoastName یا IP Address را در نوار آدرس تایپ و روی enter کلیک کنید.
پس از نصب و پیکربندی وب سرور IIS چه باید کرد؟
خیلی خب! حالا شما میدانید که وب سرور IIS چیست، چطور نصب و پیکربندی میشود. اما از حالا به بعد چه؟ از حالا به بعد شما در فضای ویندوز به مدیریت سرور خود میپردازید. کافی است همان مواردی که در بخش پیشنیازهای نصب این وبسرور معرفی کردیم را روی یک کامپیوتر ویندوزی نصب کرده باشید و اطلاعات حساب خود را داشته باشید.
اگر دربارهٔ هر یک از مواردی که در این مقاله به آنها اشاره کردیم، سوالی در ذهن دارید میتوانید از بخش نظرات زیر همین پست از ما بپرسید و پاسخ بگیرید.
دیدگاه ها
اولین نفری باشید که دیدگاه خود را ثبت می کنید