دسته بندی:

آموزش نصب وب سرور (IIS) در ویندوز سرور ۲۰۱۲

نصب وب سرور IIS روی ویندوز سرور ۲۰۱۲ در عمل یعنی افزودن نقش Web Server (IIS) از مسیر Server Manager یا اجرای یک دستور PowerShell؛ بلافاصله پس از نصب، سایت پیش‌فرض روی پورت ۸۰ بالا می‌آید و کار باقی‌مانده شما فعال‌کردن سرویس‌های نقش موردنیاز (مثل ASP.NET) و باز کردن پورت‌های ۸۰ و ۴۴۳ در فایروال است.

در ادامه همین مسیر را قدم‌به‌قدم مرور می‌کنیم: افزودن نقش از Server Manager، دستور معادل در PowerShell، انتخاب Role Serviceهای موردنیاز، بررسی نصب با سایت پیش‌فرض و نکاتی که معمولاً بعد از نصب دردسر می‌سازند.

IIS دقیقاً چه کاری انجام می‌دهد؟

IIS مخفف Internet Information Services و وب سرور رسمی مایکروسافت است که به‌صورت یک نقش (Role) داخل خود ویندوز سرور قرار دارد و نیازی به دانلود جداگانه ندارد. وظیفه‌اش دریافت درخواست‌های HTTP و HTTPS، تحویل فایل‌های استاتیک، اجرای اپلیکیشن‌های ASP.NET از طریق Application Pool، مدیریت بایندینگ‌ها و گواهی‌های SSL و ثبت لاگ درخواست‌هاست. اگر با دنیای لینوکس آشنا هستید، IIS تقریباً همان جایگاهی را دارد که Apache یا Nginx دارند، با این تفاوت که مدیریتش هم از رابط گرافیکی inetmgr و هم از PowerShell انجام می‌شود.

پیش‌نیازها پیش از شروع

برای این کار به یک سرور ویندوزی با دسترسی Administrator نیاز دارید که معمولاً از طریق Remote Desktop به آن وصل می‌شوید. اگر هنوز سروری ندارید، در سرویس سرور مجازی دسترسی روت یا ادمین کامل دارید و سیستم‌عامل دلخواه (لینوکس یا ویندوز) را خودتان نصب می‌کنید؛ همین برای تمرین این آموزش کافی است. پیش از نصب، مطمئن شوید تاریخ و ساعت سرور درست است — برای همگام نگه داشتن خودکار آن سرویس NTP را راه‌اندازی کنید — و اگر قرار است سایت از بیرون در دسترس باشد، آی‌پی عمومی سرور را یادداشت کنید.

نصب نقش Web Server (IIS) با Server Manager

  • در Server Manager از منوی Manage گزینه Add Roles and Features را بزنید.
  • صفحه Before You Begin را با Next رد کنید.
  • در Installation Type گزینه Role-based or feature-based installation را انتخاب کنید.
  • در Server Selection همان سرور محلی را از Server Pool انتخاب کنید.
  • در Server Roles تیک Web Server (IIS) را بزنید. پنجره‌ای باز می‌شود که ابزارهای مدیریتی وابسته را پیشنهاد می‌دهد؛ روی Add Features کلیک کنید.
  • در صفحه Features اگر قصد اجرای اپلیکیشن ASP.NET دارید، زیرمجموعه .NET Framework 4.5 Features را باز کرده و ASP.NET 4.5 را تیک بزنید.
  • در Role Services موارد موردنیاز را انتخاب کنید (جدول بخش بعد).
  • در Confirmation روی Install بزنید و تا پایان کار صبر کنید. نصب IIS به ری‌استارت نیاز ندارد.

این مراحل روی هر ماشین ویندوزی یکسان است؛ فرقی نمی‌کند سرور شما یک ماشین مجازی باشد یا یک سرور اختصاصی که تمام منابع سخت‌افزاری آن بدون اشتراک با کاربر دیگری در اختیار شماست.

همین کار با یک دستور PowerShell

اگر ترجیح می‌دهید سریع‌تر پیش بروید یا می‌خواهید نصب را روی چند سرور تکرار کنید، PowerShell را با دسترسی Administrator باز کنید و بنویسید:

Install-WindowsFeature -Name Web-Server -IncludeManagementTools

و اگر ASP.NET و کنسول مدیریت را هم همزمان می‌خواهید:

Install-WindowsFeature -Name Web-Server,Web-Asp-Net45,Web-Mgmt-Console -IncludeManagementTools

سوییچ -IncludeManagementTools باعث نصب IIS Manager می‌شود و وابستگی‌های هر قابلیت به‌صورت خودکار اضافه می‌شوند. برای دیدن وضعیت نهایی از این دستور استفاده کنید:

Get-WindowsFeature -Name Web-*

اگر نصب با خطای نبود فایل‌های منبع متوقف شد، دیسک نصب ویندوز را مانت کنید و مسیر آن را با سوییچ -Source به دستور بدهید.

کدام Role Serviceها را فعال کنیم؟

Role Service نام در PowerShell کاربرد
Static Content Web-Static-Content تحویل فایل‌های ثابت مثل HTML، CSS و تصاویر
Default Document Web-Default-Doc باز شدن خودکار صفحه پیش‌فرض هر پوشه
ASP.NET 4.5 Web-Asp-Net45 اجرای اپلیکیشن‌های ASP.NET و MVC
HTTP Logging Web-Http-Logging ثبت لاگ درخواست‌ها برای عیب‌یابی
Request Filtering Web-Filtering فیلتر کردن درخواست‌های ناسالم
Static Compression Web-Stat-Compression فشرده‌سازی خروجی و کاهش حجم انتقال

یک نکته مهم: ماژول محبوب URL Rewrite جزو Role Serviceهای IIS نیست و در فهرست Add Roles and Features پیدا نمی‌شود. این ماژول را باید جداگانه از سایت رسمی IIS مایکروسافت دانلود و نصب کنید؛ بعد از نصب، آیکون آن داخل IIS Manager ظاهر می‌شود و برای آدرس‌های تمیز در MVC، ریدایرکت HTTP به HTTPS و تبدیل قواعد .htaccess کاربرد دارد. اگر فقط می‌خواهید یک سایت ASP.NET را بالا بیاورید و حوصله مدیریت سرور را ندارید، هاست ویندوز ایران که با پنل Plesk و روی Windows Server ارائه می‌شود و محیط سازگاری برای ASP.NET و پایگاه داده SQL Server دارد، گزینه ساده‌تری است. پیش از انتخاب نسخه فریم‌ورک هم بد نیست تفاوت NET Framework. و NET Core. را بخوانید، چون Application Pool برای هرکدام تنظیم متفاوتی می‌خواهد.

بررسی نصب با سایت پیش‌فرض

پس از نصب، IIS به‌صورت خودکار سایتی به نام Default Web Site روی پورت ۸۰ می‌سازد که ریشه آن مسیر C:inetpubwwwroot است. روی خود سرور مرورگر را باز کنید و به http://localhost بروید؛ دیدن صفحه خوش‌آمدگویی IIS یعنی نصب درست انجام شده است. سپس از یک دستگاه دیگر آدرس http://SERVER-IP را امتحان کنید تا دسترسی از بیرون هم تأیید شود. ساخت سایت‌های بعدی و اختصاص پوشه و بایندینگ به هرکدام در راه‌اندازی IIS و بالا آوردن یک وب‌سایت توضیح داده شده است.

اگر صفحه بالا نیامد، اول ببینید چه پروسه‌ای پورت ۸۰ را گرفته است:

netstat -ano | findstr ":80"

شماره PID خروجی را با این دستور به نام پروسه ترجمه کنید:

tasklist /FI "PID eq 1234"

برای اعمال تغییرات پیکربندی هم می‌توانید از iisreset استفاده کنید، اما توجه داشته باشید که این دستور تمام سایت‌های روی سرور را برای مدتی کوتاه از دسترس خارج می‌کند؛ روی سرور فعال آن را در ساعت کم‌ترافیک اجرا کنید.

باز کردن پورت ۸۰ و ۴۴۳ در فایروال

نصب IIS قوانین آماده‌ای با نام World Wide Web Services در Windows Firewall ایجاد می‌کند؛ قانون مربوط به HTTP معمولاً فعال است اما قانون HTTPS به‌طور پیش‌فرض غیرفعال می‌ماند. وضعیت را ببینید: اگر ترجیح می‌دهید سایت‌ها را به‌جای IIS Manager با یک پنل مدیریت کنید، نصب وب‌سایت پنل روی ویندوز سرور ۲۰۱۲ گزینه دیگری است.

Get-NetFirewallRule -DisplayName "World Wide Web Services*" | Select-Object DisplayName,Enabled

و برای فعال کردن ترافیک HTTPS:

Enable-NetFirewallRule -DisplayName "World Wide Web Services (HTTPS Traffic-In)"

اگر ترجیح می‌دهید قانون دلخواه خودتان را بسازید:

netsh advfirewall firewall add rule name="IIS-HTTPS" dir=in action=allow protocol=TCP localport=443

دقت کنید که فایروال ویندوز تنها لایه ممکن نیست؛ بسته به ارائه‌دهنده، ممکن است یک فایروال شبکه‌ای یا Security Group بیرونی هم وجود داشته باشد که باید جداگانه پورت را در آن باز کنید. برای اینکه پورت ۴۴۳ واقعاً پاسخ بدهد هم باید در IIS Manager به سایت خود بروید، از بخش Bindings یک بایندینگ از نوع https اضافه کنید و یک گواهی معتبر به آن اختصاص دهید؛ گواهی را می‌توانید از سرویس گواهینامه SSL تهیه کنید.

بعد از نصب: چند نکته که جلوی دردسر را می‌گیرد

مهم‌ترین نکته این است که پشتیبانی توسعه‌یافته ویندوز سرور ۲۰۱۲ و ۲۰۱۲ R2 در اکتبر ۲۰۲۳ به پایان رسیده و این نسخه‌ها دیگر به‌روزرسانی امنیتی عمومی دریافت نمی‌کنند؛ اگر سروری اینترنتی و در معرض دید عموم دارید، مهاجرت به نسخه جدیدتر ویندوز سرور را در برنامه بگذارید.

در کنار آن، هر سایت را در Application Pool مجزای خودش قرار دهید تا کرش یک اپلیکیشن بقیه را از کار نیندازد، دسترسی نوشتن روی C:inetpubwwwroot را فقط به پوشه‌هایی بدهید که واقعاً به آن نیاز دارند، و برای عیب‌یابی سراغ لاگ‌های C:inetpublogsLogFiles بروید. اگر هم تعداد سایت‌ها یا حجم ترافیک از توان ماشین فعلی فراتر رفت، انتقال به سرور اختصاصی گام منطقی بعدی است.

ارسال نظر