IIS: Windows پر ایک سائٹ
VPS پر IIS ویب سرور کیسے انسٹال کریں، اپنی پہلی سائٹ اپنے ڈومین پر کیسے شائع کریں، سرٹیفکیٹ کیسے جاری کریں، اور لاگز میں ڈوبنے سے کیسے بچیں۔
اپ ڈیٹ 23 اگست، 2026
IIS ونڈوز سرور کا بلٹ اِن ویب سرور ہے۔ یہ ASP.NET ایپلیکیشنز، اسٹیٹک مواد، اور مقامی پورٹ پر سننے والی سروس کے سامنے ریورس پراکسی کے طور پر اچھی طرح کام کرتا ہے۔
انسٹالیشن
Install-WindowsFeature -Name Web-Server -IncludeManagementTools
Install-WindowsFeature Web-Asp-Net48, Web-Http-Redirect, Web-Dyn-Compression
فائر وال میں پورٹس کھولیں:
New-NetFirewallRule -DisplayName "HTTP" -Direction Inbound -Protocol TCP -LocalPort 80 -Action Allow
New-NetFirewallRule -DisplayName "HTTPS" -Direction Inbound -Protocol TCP -LocalPort 443 -Action Allow
پینل میں “Overview” کے تحت /hosting/vds/m/<id> پر اپنی مشین کے ایڈریس پر اسٹارٹ پیج کھل رہا ہے یا نہیں، یہ چیک کریں۔ اگر نہیں کھل رہا، تو Windows Firewall دیکھیں۔
آپ کی پہلی سائٹ
Import-Module WebAdministration
New-Item -ItemType Directory C:\sites\example
Set-Content C:\sites\example\index.html "<h1>It works</h1>"
New-WebAppPool -Name "example"
New-Website -Name "example" -Port 80 -HostHeader "example.ru" `
-PhysicalPath "C:\sites\example" -ApplicationPool "example"
ہوسٹ ہیڈر (-HostHeader) آپ کو ایک ہی ایڈریس پر کئی سائٹس ہوسٹ کرنے دیتا ہے: IIS اُنہیں ڈومین سے الگ پہچانتا ہے۔ ڈومین کا A ریکارڈ کے ذریعے آپ کی مشین کے ایڈریس کی طرف اشارہ کرنا ضروری ہے۔
سائٹ کو ڈائریکٹری پر صرف کم سے کم اجازتیں درکار ہیں — ریڈ:
icacls C:\sites\example /grant "IIS AppPool\example:(OI)(CI)R" /T
HTTPS سرٹیفکیٹ
مفت سرٹیفکیٹ حاصل کرنے کا سب سے آسان طریقہ win-acme کلائنٹ ہے: wacs.exe ڈاؤن لوڈ کریں، اسے ایڈمنسٹریٹر کے طور پر چلائیں، اور فہرست میں سے اپنی سائٹ منتخب کریں — یہ سرٹیفکیٹ جاری کرے گا، اسے سائٹ سے بائنڈ کرے گا، اور تجدید کا ٹاسک بنائے گا۔
بائنڈنگز چیک کرنے کے لیے:
Get-WebBinding -Name "example"
New-WebBinding -Name "example" -Protocol https -Port 443 -HostHeader "example.ru" -SslFlags 1
سرٹیفکیٹ جاری کرنے کے لیے پورٹ 80 باہر سے کھلا ہونا ضروری ہے — ڈومین کی تصدیق اسی کے ذریعے ہوتی ہے۔
IIS کے پیچھے ایپلیکیشن
اگر آپ کی سروس (Node, Python, .NET Kestrel) 127.0.0.1:5000 پر سنتی ہے، تو URL Rewrite اور Application Request Routing ماڈیولز انسٹال کریں، پراکسینگ فعال کریں، اور سائٹ کے web.config میں درج ذیل شامل کریں:
<rule name="proxy" stopProcessing="true">
<match url="(.*)" />
<action type="Rewrite" url="http://127.0.0.1:5000/{R:1}" />
</rule>
اس طرح باہر صرف سرٹیفکیٹ والا IIS ظاہر ہوتا ہے، اور ایپلیکیشن localhost پر رہتی ہے۔
آپریشنز
Get-Website | Select-Object Name, State, PhysicalPath
Restart-WebAppPool example
Get-WebAppPoolState
لاگز C:\inetpub\logs\LogFiles میں رہتے ہیں اور بلا حد بڑھتے رہتے ہیں — 40 GB ڈسک پر یہ جلد بہت زیادہ ہو جاتے ہیں۔ IIS Manager میں روٹیشن سیٹ کریں (“Logging” سیکشن، روزانہ فائلیں) اور پرانے لاگز شیڈولڈ ٹاسک سے حذف کریں:
Get-ChildItem C:\inetpub\logs\LogFiles -Recurse -File |
Where-Object LastWriteTime -lt (Get-Date).AddDays(-30) | Remove-Item -Force
عام غلطیاں
- Error 500.19 — خراب
web.configیا غائب ماڈیول۔ مقامی درخواستوں کے لیے تفصیلی پیغامات فعال کرنے پر اصل وجہ ایرر ٹیکسٹ میں نظر آتی ہے۔ - ایپلیکیشن پول خود بخود رک جاتا ہے۔ rapid-fail protection فعال ہو گئی: سائٹ کریش ہوتی ہے اور IIS اسے بند کر دیتا ہے۔ وجہ ایپلیکیشن لاگ میں تلاش کریں (
Get-WinEvent -LogName Application -MaxEvents 30)۔ - سائٹ ایڈریس سے کھلتی ہے مگر ڈومین سے نہیں۔ ہوسٹ ہیڈر مماثل نہیں، یا DNS ابھی اپ ڈیٹ نہیں ہوا۔
- پبلش کرنے کے بعد 403۔ ایپلیکیشن پول کو ڈائریکٹری پر اجازتیں نہیں دی گئیں۔
اپنی سائٹ ڈائریکٹریز
C:\inetpubسے باہر اورC:\sitesجیسے الگ فولڈر میں رکھیں — اس سے بیک اپ آسان ہو جاتے ہیں اور آپ ڈیٹا کھوئے بغیر سسٹم دوبارہ انسٹال کر سکتے ہیں۔