Skip to content
VDS · Windows Server

IIS: موقع على Windows

كيفية تثبيت خادم الويب IIS على VPS، ونشر موقعك الأول على نطاقك الخاص، وإصدار شهادة، وتجنب الغرق في السجلات.

آخر تحديث 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

تحقق من أن صفحة البداية تُفتح على عنوان جهازك من «نظرة عامة» في لوحة التحكم /hosting/vds/m/<id>. إذا لم تُفتح، راجع جدار حماية Windows.

موقعك الأول

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

الأخطاء الشائعة

  • الخطأ 500.19 — ملف web.config تالف أو وحدة مفقودة. يظهر السبب الدقيق في نص الخطأ إذا فعّلت الرسائل التفصيلية للطلبات المحلية.
  • توقف مجمع التطبيقات من تلقاء نفسه. فُعّلت حماية الفشل السريع: ينهار الموقع فيوقفه IIS. ابحث عن السبب في سجل التطبيقات (Get-WinEvent -LogName Application -MaxEvents 30).
  • يفتح الموقع بالعنوان لا بالنطاق. ترويسة المضيف غير مطابقة، أو لم يُحدَّث DNS بعد.
  • الخطأ 403 بعد النشر. لم تُمنح أذونات على المجلد لمجمع التطبيقات.

أبقِ مجلدات موقعك خارج C:\inetpub وفي مجلد منفصل مثل C:\sites — فهذا يسهّل النسخ الاحتياطي ويتيح لك إعادة تثبيت النظام دون فقدان البيانات.