Skip to content
VDS · Windows Server

IIS: Windows पर साइट

VPS पर IIS वेब सर्वर कैसे इंस्टॉल करें, अपनी पहली साइट अपने डोमेन पर कैसे पब्लिश करें, सर्टिफिकेट कैसे लें, और लॉग में डूबने से कैसे बचें।

23 अगस्त 2026 को अपडेट किया गया

IIS, Windows Server का बिल्ट-इन वेब सर्वर है। यह 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 जैसे अलग फ़ोल्डर में रखें — इससे बैकअप लेना आसान होता है और आप डेटा खोए बिना सिस्टम दोबारा इंस्टॉल कर सकते हैं।