
به اشتراک بگذارید
نصب IIS در ویندوز سرور اولین و حیاتیترین قدم برای هر ادمین شبکه یا توسعهدهندهای است که میخواهد اپلیکیشنهای تحت وب خود را میزبانی کند. IIS یا Internet Information Services، وبسرور اختصاصی مایکروسافت است که به صورت کاملاً بومی (Native) با هسته ویندوز یکپارچه شده است.
- ✅ نصب سریع و آسان
- ✅ پایداری در مقیاس سازمانی
- ✅ مشاهده پلنهای سرور مجازی ویندوز در وبداده

IIS چیست؟ معماری و نحوه عملکرد
IIS یک وبسرور انعطافپذیر برای میزبانی وبسایتها و اپلیکیشنهای تحت وب است. در ساختار IIS، هر درخواست از لایه هسته ویندوز (HTTP.sys) عبور کرده و به سمت پردازشگر مربوطه هدایت میشود:
درخواست کاربر (Browser)
⬇️
فایروال (Port 80/443)
⬇️
HTTP.sys (Kernel Mode)
⬇️
[ IIS Worker Process ]
├─ App Pool 1 (Site A)
└─ App Pool 2 (Site B)
مزایای کلیدی نصب IIS:
- یکپارچگی با Active Directory: مدیریت دسترسی کاربران
- Application Pools: ایزوله کردن سایتها برای جلوگیری از Crash
- رابط گرافیکی: IIS Manager برای مدیریت آسان
- پشتیبانی چندزبانه: ASP.NET، PHP، Python و Node.js
پیشنیازهای نصب IIS در ویندوز سرور
- حداقل 2 گیگابایت رم (4GB توصیه میشود)
- Windows Server 2022 Standard یا Datacenter
- دسترسی Administrator
- اتصال اینترنت برای دانلود ماژولها
راهنمای نصب IIS در ویندوز سرور
روش 1: نصب با Server Manager
- مرحله 1: Server Manager را باز کنید > “Add roles and features”

- مرحله 2: Next > “Role-based installation” > Next

- مرحله 3: سرور خود را انتخاب کنید > Next
- مرحله 4: تیک “Web Server (IIS)” را بزنید > “Add Features”

- مرحله 5: در Role Services، این موارد را حتماً انتخاب کنید:

- Default Document
- HTTP Errors
- Static Content
- HTTP Redirection
- HTTP Logging
- Request Filtering
- ASP.NET 4.8
- IIS Management Console
- مرحله 6: Install > منتظر بمانید تا نصب کامل شود.


روش 2: راه اندازی IIS در ویندوز سرور با PowerShell
# نصب IIS با تمام ابزارهای مدیریتی
Install-WindowsFeature -name Web-Server -IncludeManagementTools
# نصب کامل با ASP.NET
Install-WindowsFeature Web-Server, Web-Asp-Net45, Web-Mgmt-Tools -IncludeManagementTools
👈 تست نصب:
مرورگر را باز کنید و http://localhost را تایپ کنید. اگر صفحه “Welcome to IIS” را دیدید، نصب موفق بوده است!
میزبانی اولین وبسایت روی IIS
مرحله 1: آمادهسازی فایلها
- پوشه
C:\inetpub\mysiteبسازید - فایل
index.htmlدر آن بسازید:
<!DOCTYPE html>
<html>
<head>
<title>اولین سایت من</title>
</head>
<body>
<h1>سلام! این اولین وبسایت من روی IIS است</h1>
</body>
</html> مرحله 2: ایجاد سایت در IIS
- 1.
Win + R>inetmgr> Enter - 2. روی “Sites” راستکلیک > “Add Website”
- 3. تنظیمات:
- Site name:
MyFirstSite - Physical path:
C:\inetpub\mysite - Port:
8080(یا 80 اگر Default Site را حذف کردید)
- 4. OK
پیکربندی Binding و اتصال دامنه در IIS
| پارامتر | مقدار | توضیح |
|---|---|---|
| Type | http / https | نوع پروتکل |
| IP Address | All Unassigned | همه IP ها |
| Port | 80 / 443 | پورت دسترسی |
| Host name | example.com | دامنه سایت |
تنظیم دسترسیهای پوشه (Permissions) در ویندوز
$path = "C:\inetpub\mysite"
$acl = Get-Acl $path
# دسترسی IIS_IUSRS
$permission = "BUILTIN\IIS_IUSRS","ReadAndExecute","Allow"
$accessRule = New-Object System.Security.AccessControl.FileSystemAccessRule $permission
$acl.SetAccessRule($accessRule)
Set-Acl $path $acl Everyone - Full Control ندهید!باز کردن پورت فایروال
روش PowerShell (سریع):
# باز کردن پورت 80 (HTTP)
New-NetFirewallRule -DisplayName "IIS HTTP" -Direction Inbound -LocalPort 80 -Protocol TCP -Action Allow
# باز کردن پورت 443 (HTTPS)
New-NetFirewallRule -DisplayName "IIS HTTPS" -Direction Inbound -LocalPort 443 -Protocol TCP -Action Allow روش GUI:
- Control Panel > Windows Defender Firewall > Advanced Settings
- Inbound Rules > New Rule
- Port > TCP >
80, 443 - Allow the connection
- نام:
IIS Web Server

نکات امنیتی و سختسازی IIS
1- غیرفعال کردن Directory Browsing
Set-WebConfigurationProperty -filter /system.webServer/directoryBrowse -name enabled -value false 2- حذف Server Headers
در web.config:
<system.webServer>
<httpProtocol>
<customHeaders>
<remove name="X-Powered-By" />
</customHeaders>
</httpProtocol>
<security>
<requestFiltering removeServerHeader="true" />
</security>
</system.webServer> 3- نصب SSL Certificate
Import کردن Certificate:
$certPath = "C:\Certificates\mycert.pfx"
$certPassword = ConvertTo-SecureString -String "Password" -Force -AsPlainText
Import-PfxCertificate -FilePath $certPath -CertStoreLocation Cert:\LocalMachine\My -Password $certPassword افزودن HTTPS Binding:
- IIS Manager > سایت > Bindings > Add
- Type: https, Port: 443
- انتخاب Certificate
4- اجباری کردن HTTPS
در web.config:
<system.webServer>
<rewrite>
<rules>
<rule name="HTTP to HTTPS" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
</system.webServer> نصب PHP روی IIS
مرحله 1: نصب FastCGI
Install-WindowsFeature Web-CGI مرحله 2: دانلود PHP
- از windows.php.net نسخه Non-Thread Safe را دانلود کنید
- در
C:\PHPاستخراج کنید
مرحله 3: ثبت در IIS
# ثبت PHP Handler
New-WebHandler -Name "PHP-FastCGI" -Path "*.php" -Verb "*" -Modules "FastCgiModule" -ScriptProcessor "C:\PHP\php-cgi.exe"
# تنظیم FastCGI
Add-WebConfiguration -Filter /system.webServer/fastCgi -Value @{fullPath="C:\PHP\php-cgi.exe"} تست PHP:
فایل test.php:
<?php
phpinfo();
?> - مرورگر:
http://localhost/test.php - ⚠️ بعد از تست، فایل test.php را پاک کنید!

عیبیابی خطاهای رایج IIS و راهحلهای سریع
حتی با رعایت تمام مراحل، ممکن است با خطاهایی مانند 403.14 (Forbidden)، 500.19 (خطای تنظیمات) یا 503 (Service Unavailable) مواجه شوید که هر کدام دلایل مشخصی دارند. در این بخش یاد میگیرید چگونه با استفاده از ابزارهای تشخیصی مانند Event Viewer، دستورات PowerShell و بررسی Application Pool ها، علت اصلی مشکل را شناسایی کنید. با راهحلهای عملی و دستورات آماده این بخش، میتوانید در کمتر از 5 دقیقه اکثر مشکلات رایج را برطرف کنید و سایت خود را مجدداً آنلاین نمایید.
خطای 403.14 – دسترسی ممنوع (Forbidden)
راهحل:
# اضافه کردن فایلهای پیشفرض
Add-WebConfiguration -Filter /system.webServer/defaultDocument/files -Value @{value="index.html"}
Add-WebConfiguration -Filter /system.webServer/defaultDocument/files -Value @{value="index.php"} خطای 503 – Service Unavailable
راهحل:
# راهاندازی مجدد App Pool
Restart-WebAppPool -Name "DefaultAppPool"
# بررسی وضعیت
Get-WebAppPoolState -Name "DefaultAppPool" پورت 80 اشغال است
# پیدا کردن پردازش
netstat -ano | findstr :80
# بستن پردازش
taskkill /PID [شماره_PID] /F خدمات میزبانی وبداده
سرورهای ویندوز وبداده با سختافزارهای قدرتمند و پورت شبکه ۱۰ گیگابیت، بهترین میزبان برای پروژههای IIS شما هستند.
- ✅ پشتیبانی 24 ساعته
- ✅ درایوهای NVMe
- ✅ نصب خودکار ویندوز سرور 2025 تنها با یک کلیک
نتیجهگیری: آموزش کامل نصب و راه اندازی IIS در ویندوز سرور 2022
- ✅ همیشه Application Pool جداگانه بسازید
- ✅ Directory Browsing را غیرفعال کنید
- ✅ از HTTPS استفاده کنید
- ✅ به طور منظم Backup بگیرید
سوالات متداول از نصب IIS در ویندوز سرور 2022
1- آیا میتوانم روی ویندوز 10 هم IIS نصب کنم؟
بله، اما برای محیط تولیدی پیشنهاد نمیشود. Windows 10 محدودیت 10 اتصال همزمان دارد.



