IIS وب سرور مایکروسافت است که روی Windows Server اجرا میشود و برای میزبانی وبسایتها و برنامههای تحت وب استفاده میشود. اهمیت IIS بیشتر در محیطهای ویندوزی و پروژههایی است که با فناوریهای مایکروسافت مثل ASP.NET کار میکنند، چون با ویندوز یکپارچه است و مدیریت آن از طریق ابزارهای رسمی مایکروسافت انجام میشود. به همین دلیل، IIS در بسیاری از شرکتها، برای میزبانی وب روی سرورهای ویندوزی و اجرای سرویسهای مرتبط استفاده میشود.
در این مطلب به طور کامل با وب سرور IIS مایکروسافت آشنا میشویم و انواع نسخهها و مزایا و معایب آنها به همراه نکات امنیتی استفاده از آن را به طور جامع توضیح خواهیم داد. پس تا انتها همراه ابرها باشید.
IIS چیست؟
IIS (Internet Information Services) وب سرور رسمی مایکروسافت است که روی Windows Server نصب و اجرا میشود. وظیفه اصلی IIS این است که درخواستهای کاربران را دریافت کند و محتوای وبسایت یا خروجی برنامههای تحت وب را به آنها برگرداند. در واقع، IIS همان نرم افزاری است که وب سایت را روی سرور ویندوز «آنلاین» نگه میدهد.
اگر با مفهوم وب سرور آشنا نیستید، پیشنهاد میکنیم حتما مطلب وب سرور چیست به زبان ساده را مطالعه کنید.
کاربردهای اصلی IIS
IIS فقط برای نمایش صفحات ساده نیست و چند کاربرد مهم دارد که تعدادی از آنها عبارتند از:
- میزبانی وبسایتها و راه اندازی سایتهای سازمانی
- اجرای اپلیکیشنهای مبتنی بر ASP.NET و سرویسهای مرتبط
- ارائه سرویسهای FTP برای انتقال فایل (در صورت فعال سازی)
- پشتیبانی از سرویسهای دیگر مثل SMTP (بسته به نسخه ویندوز و تنظیمات)
در نتیجه، سرویس IIS یک ابزار چندمنظوره برای میزبانی و مدیریت سرویسهای تحت وب در محیط ویندوز است و بسته به نیاز میتوان سرویسهای IIS مختلف را فعال یا غیرفعال کرد.
سرویسها و کاربردهای IIS
سرویسهای IIS مجموعهای از قابلیتها هستند که بسته به نیاز، میتوان آنها را روی Windows Server فعال کرد. مهمترین دلیل استفاده از سرویس IIS این است که فقط یک وب سرور ساده نیست و از چند سرویس و پروتکل مختلف پشتیبانی میکند.
در IIS سرویسها و قابلیتهای زیر رایجتر هستند:
- HTTP/HTTPS برای میزبانی وبسایت و اپلیکیشنهای تحت وب
- FTP برای انتقال فایل بین کاربر و سرور
- SMTP برای سرویسهای مرتبط با ارسال ایمیل (در برخی سناریوها و وابسته به تنظیمات ویندوز)
- NNTP که یک سرویس قدیمیتر است و امروزه کمتر استفاده میشود
به همین دلیل، وقتی درباره سرویس های IIS صحبت میکنیم، منظور فقط نمایش سایت نیست؛ IIS میتواند در نقشهای مختلفی روی سرور ویندوز استفاده شود.
فریم ورکها و زبانهای پشتیبانی شده
IIS برای فناوریهای مایکروسافت بهینه است و به صورت طبیعی از ASP.NET پشتیبانی میکند. علاوه بر آن، امکان اجرای PHP هم روی IIS وجود دارد و در برخی پروژهها از CGI یا ISAPI برای اتصال و اجرای برنامهها استفاده میشود.

انواع نسخه IIS
IIS در نسخههای مختلف منتشر شده است و هر نسخه معمولا همراه با نسخههای مشخصی از Windows (به خصوص Windows Server) ارائه میشود. نکته مهم این است که نسخههای جدیدتر IIS معمولا امنیت، پایداری و امکانات مدیریتی بهتری دارند.
در ادامه، نسخههای مهم IIS معرفی شدهاند:
- IIS 1.0 تا 3.0: نسخههای ابتدایی IIS بودند و بیشتر برای میزبانی ساده وب استفاده میشدند. امکانات مدیریتی محدود بود و استانداردهای امنیتی نسبت به امروز ضعیفتر بودند.
- IIS 4.0 و 5.0 / 5.1: قابلیتها بیشتر شد و IIS در محیطهای سازمانی رایجتر شد. در این دوره، استفاده از IIS برای میزبانی سایتهای ویندوزی افزایش پیدا کرد.
- IIS 6.0: یکی از نسخههای مهم و نقطه عطف در IIS محسوب میشود، چون پایداری و امنیت را بهتر کرد. به خصوص در مدیریت فرآیندها و کنترل بهتر اجرای برنامهها تغییرات جدی ایجاد شد.
- IIS 7.0 و 7.5: ساختار IIS در این نسخهها انعطاف پذیرتر شد. به صورت ساده یعنی بخشهای مختلف IIS را میتوان دقیقتر مدیریت کرد و ماژولها را بهتر کنترل کرد. همچنین ابزارهای مدیریت و تنظیمات نسبت به نسخههای قدیمیتر پیشرفتهتر شدند.
- IIS 8.0 و 8.5: عملکرد و امنیت بهتر شد و IIS برای سناریوهای جدیدتر و بار بیشتر آمادهتر شد. این نسخهها در بسیاری از سرورهای سازمانی استفاده شدند.
- IIS 10: نسخه جدیدتر IIS که در ویندوزهای جدیدتر ارائه شده و برای نیازهای وب مدرن، امنیت بهتر و سازگاری بهتر با فناوریهای جدید طراحی شده است.
معماری و نحوه عملکرد IIS
برای درک بهتر اینکه iis چگونه درخواستها را مدیریت میکند، لازم است سه مفهوم اصلی را بشناسید:
- Kernel Mode و User Mode
- مفهوم Application Pool
- مسیر پردازش یک درخواست HTTP
Kernel Mode و User Mode در IIS
IIS بخشی از پردازش را در سطح سیستم عامل انجام میدهد و بخش دیگر را در سطح برنامههای سرویس دهنده:
- Kernel Mode (هسته سیستم عامل):
در این بخش، دریافت اولیه درخواستهای HTTP/HTTPS انجام میشود. این کار توسط ماژولی به نام HTTP.sys صورت میگیرد. HTTP.sys درخواستها را میگیرد، آنها را مدیریت اولیه میکند و سپس برای پردازش اصلی به بخشهای بعدی میفرستد. این مرحله باعث میشود دریافت درخواستها سریعتر و منظمتر انجام شود. - User Mode (محیط اجرای سرویسها):
پردازش اصلی درخواستها و تولید پاسخ در User Mode انجام میشود. در این قسمت، IIS تصمیم میگیرد درخواست به کدام وبسایت یا کدام برنامه مربوط است و سپس آن را پردازش میکند.
Application Pool چیست و چه نقشی دارد؟
Application Pool یکی از مهمترین بخشهای تنظیمات وب سرور iis است. هدف اصلی آن جداسازی وبسایتها و برنامهها از یکدیگر است تا اگر یک سایت یا یک برنامه دچار مشکل شد، بقیه سایتها و سرویسها کمتر آسیب ببینند.
در واقع میتوان، برای هر وبسایت یک Pool جدا تعریف کرد تا امنیت و پایداری آن بهتر میشود و از طرفی مدیریت منابع سادهتر میشود، چون هر Pool میتواند تنظیمات و محدودیتهای خودش را داشته باشد.
نحوه پردازش درخواستهای HTTP در IIS
پردازش یک درخواست در IIS به صورت کلی این مراحل را طی میکند:
- کاربر آدرس سایت را باز میکند و درخواست HTTP/HTTPS ارسال میشود.
- درخواست توسط HTTP.sys دریافت و مرتب سازی اولیه میشود.
- IIS تشخیص میدهد درخواست مربوط به کدام وبسایت است و آن را به Application Pool مرتبط هدایت میکند.
- Application Pool درخواست را پردازش میکند. اگر سایت از ASP.NET استفاده کند، پردازش طبق تنظیمات همان برنامه انجام میشود.
- پاسخ تولید میشود و به کاربر برمیگردد.
مزایا و معایب IIS
وقتی مشخص شد iis چیست و انواع آن کدامند، مهم است مزایا و محدودیتهای آن را هم بدانید تا انتخاب بین IIS و وب سرورهای دیگر منطقی باشد.
مزایای IIS
- یکپارچگی با ویندوز:
IIS به صورت رسمی توسط مایکروسافت ارائه میشود و با Windows Server هماهنگ است. همین یکپارچگی باعث میشود نصب، مدیریت کاربران، دسترسیها و بسیاری از تنظیمات سرور در یک محیط آشنا انجام شود. - مدیریت ساده و ابزارهای مدیریتی قوی:
IIS از طریق IIS Manager و ابزارهای ویندوز قابل مدیریت است و بسیاری از تنظیمات رایج مثل سایتها، بایندینگها، گواهی SSL و ریدایرکتها به صورت واضح قابل انجام است. - پشتیبانی مناسب از ASP.NET:
یکی از مهمترین مزیتهای IIS، سازگاری و پشتیبانی قوی از فناوریهای مایکروسافت مانند ASP.NET است. در نتیجه برای پروژههای سازمانی که روی تکنولوژیهای مایکروسافت ساخته شدهاند، IIS معمولا انتخاب طبیعیتری است و تنظیمات IIS برای ASP NET در آن استاندارد و شناخته شده است.
معایب IIS
- کارایی پایینتر در برخی پروژههای بزرگ نسبت به Nginx/Apache:
در پروژههای پرترافیک یا معماریهای خاص، بسیاری از تیمها از Nginx یا Apache استفاده میکنند، چون در برخی شرایط میتوانند مصرف منابع کمتر یا انعطاف بیشتری داشته باشند. - مصرف منابع و وابستگی به محیط ویندوز:
IIS روی ویندوز اجرا میشود و اگر سازمان بخواهد ساختار لینوکسی یا سبکتری داشته باشد، IIS انتخاب مناسبی نیست. همچنین در برخی سناریوها، مصرف منابع سرور و نحوه تنظیم Application Pool میتواند روی عملکرد اثر بگذارد و نیاز به بهینه سازی داشته باشد.
تفاوت IIS با وب سرورهای دیگر
در این بخش مقایسه میکنیم iis وب سرور چه تفاوتی با وب سرورهای رایج دیگر مثل Apache و Nginx دارد. انتخاب بین این گزینهها معمولا به سیستم عامل سرور، نوع پروژه و میزان ترافیک بستگی دارد. اگر بدانید iis چیست و چه زمانی بهترین عملکرد را دارد، تصمیمگیری سادهتر میشود.
| معیار | IIS | Apache | Nginx |
|---|---|---|---|
| سازنده/پشتیبانی اصلی | مایکروسافت | متنباز (Community) | متنباز (Community/Commercial) |
| سیستمعامل رایج | ویندوز سرور | لینوکس/ویندوز | لینوکس (رایجتر) |
| مدیریت و پنل | IIS Manager (گرافیکی) | فایل کانفیگ | فایل کانفیگ |
| بهترین گزینه برای | پروژههای ویندوزی و ASP.NET | سایتهای عمومی و انعطاف بالا | ترافیک بالا و عملکرد خوب در استاتیک/ریورسپراکسی |
| اجرای ASP.NET | بسیار مناسب و یکپارچه | معمولا غیرمستقیم/کمتر رایج | معمولا غیرمستقیم/کمتر رایج |
| مصرف منابع در بار بالا | وابسته به تنظیمات، در برخی سناریوها بالاتر | متوسط | معمولا بهینهتر در بسیاری از سناریوها |
| انعطاف در ماژولها | قابل مدیریت از طریق Features/Modules | ماژولهای زیاد و گسترده | ماژولها، ولی رویکرد متفاوت و سبکتر |
| مناسب برای میزبانی چند سایت | بله، با Application Pool | بله | بله |
اگر پروژه شما ویندوزی است یا روی ASP.NET توسعه داده شده، IIS معمولا انتخاب طبیعیتر است. اگر زیرساخت شما لینوکسی است یا هدف شما عملکرد بسیار بالا و کانفیگ سبک است، معمولا Nginx یا Apache بهتر است بررسی شوند.
تنظیمات IIS برای وبسایتها
در این بخش مراحل و تنظیمات IIS برای میزبانی وبسایت را به صورت عملی توضیح میدهیم. هدف این است که بتوانید راه اندازی سایت در IIS را انجام دهید، دامنه را متصل کنید، چند سایت را مدیریت کنید و در صورت نیاز ریدایرکت انجام دهید.
تنظیمات اولیه برای میزبانی سایت
برای راه اندازی سایت در IIS مراحل زیر را طی کنید:
- IIS Manager را باز کنید و از بخش Sites گزینه Add Website را انتخاب کنید.
- یک نام برای سایت تعیین کنید و مسیر پوشه سایت (Physical Path) را مشخص کنید.
- پورت را تعیین کنید (معمولا 80 برای HTTP و 443 برای HTTPS).
- در قسمت Binding، نوع پروتکل و IP و پورت را مشخص کنید و سایت را ایجاد کنید.
در همین مرحله، بسیاری از موارد مربوط به تنظیمات وب سرور IIS مثل مسیر پروژه و بایندینگها مشخص میشود.
اتصال دامنه به IIS
برای اتصال دامنه به IIS باید دو بخش درست باشد: در DNS دامنه، رکورد لازم (معمولا A Record) به IP سرور اشاره کند. در IIS، داخل Binding سایت، نام دامنه را اضافه کنید تا IIS بداند این درخواست مربوط به کدام سایت است. برای آشنایی بیشتر با مراحل DNS و اتصال دامنه از سمت هاست، میتوانید مطلب اتصال دامنه به هاست را هم مطالعه کنید.
تنظیمات برای ASP.NET و PHP
اگر پروژه شما ASP.NET است، معمولا نیاز دارید نسخه مناسب .NET را نصب کنید و تنظیمات سایت را طوری انجام دهید که داخل یک Application Pool مناسب اجرا شود. این بخش همان چیزی است که در عمل به آن تنظیمات IIS برای ASP NET گفته میشود.
اگر سایت شما PHP است، باید PHP را روی سرور نصب کنید و معمولا با FastCGI آن را به IIS متصل کنید. در این حالت لازم است تنظیمات مربوط به Handler Mapping و ماژولهای لازم فعال باشد.
مدیریت چند وبسایت روی یک سرور
IIS امکان میزبانی چند سایت روی یک سرور را دارد، اما شرط اصلی این است که Bindingها درست تنظیم شوند. دو روش رایج وجود دارد که عبارتند از:
- استفاده از دامنههای متفاوت روی یک IP با Host Name در Binding
- استفاده از پورتهای متفاوت برای سایتهای مختلف
برای پایداری بیشتر هم معمولا برای هر سایت یا هر گروه سایت، Application Pool جدا در نظر گرفته میشود.
آموزش ریدایرکت 301 و 302 در IIS
- ریدایرکت در IIS معمولا با ویژگی HTTP Redirect یا با URL Rewrite انجام میشود:
- 301 برای انتقال دائمی (مثل تغییر همیشگی آدرس یک صفحه)
- 302 برای انتقال موقت (مثل انتقال کوتاهمدت یا تست)
در IIS Manager وارد سایت مورد نظر شوید، بخش Redirect یا URL Rewrite را باز کنید، آدرس مقصد را تعیین کنید و نوع ریدایرکت (301 یا 302) را مشخص کنید. این کار یکی از رایجترین بخشهای تنظیمات IIS برای سئو و مدیریت مسیرها است.
امنیت و SSL در IIS
IIS به اینترنت متصل است و درخواستهای کاربران را دریافت میکند. هر سرویس آنلاین، در معرض مواردی مثل دسترسی غیرمجاز، حدس رمز عبور، سوءاستفاده از آسیبپذیریها و حملات مربوط به ترافیک است. بنابراین امن سازی IIS ، هم برای حفظ اطلاعات و هم برای پایداری سرویس ضروری است. برای امن سازی IIS این اقدامات رایج و ضروری هستند:
- محدود کردن دسترسیها در سطح ویندوز و پوشههای سایت و تعیین Permission صحیح
- بروزرسانی منظم Windows Server و خود IIS
- غیرفعال کردن قابلیتها و سرویس های IIS غیرضروری (هر سرویس اضافی، ریسک اضافی است)
- استفاده از HTTPS و فعال کردن SSL برای رمزنگاری ارتباط
- کنترل دسترسی مدیریتی و محدود کردن دسترسی به IIS فقط به افراد مجاز
برای تکمیل این بخش، میتوانید مطلب راهنمای افزایش امنیت ویندوز سرور را هم مطالعه کنید.
ساخت CSR در IIS برای دریافت SSL
برای دریافت SSL از یک صادرکننده گواهی، معمولا باید CSR بسازید. ساخت CSR در IIS به صورت خلاصه این گونه انجام میشود:
- IIS Manager را باز کنید و روی نام سرور کلیک کنید.
- وارد بخش Server Certificates شوید.
- گزینه Create Certificate Request را انتخاب کنید.
- اطلاعات دامنه و سازمان را وارد کنید (Common Name باید همان دامنه باشد).
- فایل CSR را ذخیره کنید و آن را به شرکت ارائه دهنده SSL بدهید.
اگر هنوز گواهی تهیه نکردهاید، میتوانید برای آشنایی با خرید و انواع آن، صفحه خرید SSL را مشاهده کنید.
نصب SSL روی IIS
برای نصب SSL روی IIS معمولا این مراحل انجام میشود:
- گواهی صادر شده را از شرکت ارائه دهنده دریافت کنید (معمولا فایل .cer یا .crt).
- IIS Manager را باز کنید و وارد بخش Server Certificates شوید.
- گزینه Complete Certificate Request را انتخاب کنید و فایل گواهی را وارد کنید.
- حالا وارد سایت مورد نظر شوید و در بخش Bindings، نوع را روی https بگذارید.
- پورت را روی 443 تنظیم کنید و گواهی نصب شده را انتخاب کنید.
- تنظیمات را ذخیره کنید و سایت را تست کنید.
مدیریت پیشرفته و بهینه سازی
بعد از راهاندازی و تنظیمات اولیه، مرحله مهم بعدی از آموزش iis این است که سرویس را پایدار نگه دارید، مشکلات را سریع پیدا کنید و در صورت نیاز افزایش سرعت IIS را انجام دهید.
مانیتورینگ IIS
برای بررسی وضعیت IIS و پیدا کردن خطاها، این ابزارهای داخلی ویندوز کاربردی هستند:
- Performance Monitor برای بررسی مصرف CPU، RAM، Disk و شاخصهای مرتبط با IIS
- Event Viewer برای دیدن خطاها و رخدادهای مربوط به IIS و سرویسهای ویندوز
این دو ابزار معمولا اولین گزینه برای عیبیابی و بررسی سلامت سرویس هستند، مخصوصا وقتی کاربران کندی یا خطا گزارش میدهند.
ابزارهای مانیتورینگ خارجی
اگر مانیتورینگ حرفهایتر لازم باشد، ابزارهای خارجی هم استفاده میشوند؛ مثل SolarWinds و Dynatrace . این ابزارها معمولا گزارش دقیقتر، هشداردهی و تحلیل عمیقتر ارائه میکنند.
افزایش سرعت IIS
برای افزایش سرعت IIS چند اقدام رایج وجود دارد که عبارتند از:
- فعال کردن Caching برای کاهش پردازشهای تکراری
- فعال کردن Compression برای کم کردن حجم پاسخها
- تنظیم درست Application Pool و محدودیت منابع برای جلوگیری از مصرف غیرعادی
- بهینه سازی تنظیمات سایت و مدیریت فایلهای استاتیک
اگر زیرساخت شما روی سرور مجازی است، بعضی روشهای عمومی هم وجود دارد که روی عملکرد کلی اثر میگذارد؛ برای آشنایی بیشتر میتوانید مطلب روش های افزایش سرعت سرور مجازی را مطالعه کنید.
حذف IIS
اگر به IIS نیاز ندارید یا تصمیم دارید از وب سرور دیگری استفاده کنید، امکان حذف IIS وجود دارد. این کار معمولا از طریق Windows Features انجام میشود و باید قبل از حذف، مطمئن شوید سرویس یا سایت فعالی به IIS وابسته نیست.
وردپرس و PHP در IIS
اگرچه وردپرس بیشتر روی سرورهای لینوکسی رایج است، اما وردپرس در IIS هم امکان پذیر است. برای نصب وردپرس در IIS معمولا این موارد لازم است:
- نصب و فعال سازی IIS و تنظیمات پایه سایت
- نصب PHP و اتصال آن به IIS (معمولا با FastCGI)
- نصب و راهاندازی MySQL (چون وردپرس به دیتابیس نیاز دارد)
- تنظیم فایلهای وردپرس و اتصال به پایگاه داده
با این حال بسیاری از آموزشها و ابزارهای آماده، بیشتر برای لینوکس نوشته شدهاند و ممکن است در ویندوز نیاز به تنظیمات بیشتری باشد. همچنین بعضی افزونهها یا ساختارهای خاص ممکن است به تنظیمات اضافی در rewrite و مسیرها نیاز داشته باشند.
نصب PHPMyAdmin روی IIS
نصب phpmyadmin در IIS هم امکان پذیر است، چون phpMyAdmin یک ابزار مبتنی بر PHP است. مراحل کلی شامل موارد زیر است:
- نصب PHP و فعال بودن آن روی IIS
- قرار دادن فایلهای phpMyAdmin در یک پوشه روی سرور
- ایجاد یک سایت یا یک Virtual Directory در IIS برای دسترسی به آن
- انجام تنظیمات امنیتی (چون phpMyAdmin ابزار حساس است و نباید بدون محدودیت در دسترس باشد.)
چرا کمتر رایج است ولی امکان پذیر است؟
کمتر رایج بودن نصب وردپرس در IIS معمولا به این دلیل است که وردپرس در اکوسیستم لینوکسی سادهتر و رایجتر راهاندازی میشود. با این حال، اگر سازمان شما سرور ویندوز دارد یا روی یک زیرساخت ویندوزی کار میکند، استفاده از IIS همچنان ممکن است و با تنظیمات IIS صحیح میتوان آن را پایدار کرد.
جمع بندی
در این مقاله توضیح داده شد iis چیست و چرا در بسیاری از سرورهای ویندوزی به عنوان وب سرور اصلی استفاده میشود. IIS یک وب سرور مایکروسافتی است که برای میزبانی وبسایتها و اجرای اپلیکیشنهای تحت وب، به خصوص پروژههای مبتنی بر ASP.NET، گزینهای رایج و یکپارچه با Windows Server محسوب میشود. با تنظیمات IIS میتوان راهاندازی سایت، اتصال دامنه، ریدایرکت، SSL و مدیریت چند وبسایت را انجام داد.
در کنار مزایا، محدودیتهایی مثل مصرف منابع در برخی سناریوها و نیاز به بهینه سازی هم وجود دارد؛ بنابراین انتخاب IIS زمانی منطقیتر است که زیرساخت شما ویندوزی باشد یا به سازگاری کامل با فناوریهای مایکروسافت نیاز داشته باشید.



