سطح: متوسط | مناسب برای: مدیران ویندوز سرور، کاربران سرور مجازی ویندوز، توسعهدهندگان ASP.NET، مدیران هاست ویندوز و افرادی که میخواهند بدون کنترل پنل، سایت را مستقیم در IIS راهاندازی کنند
اگر از ویندوز سرور برای میزبانی سایت استفاده میکنید، یکی از مهمترین ابزارهایی که با آن سروکار دارید IIS یا Internet Information Services است. IIS وبسرور رسمی مایکروسافت است و برای اجرای سایتهای ASP.NET، پروژههای .NET، فایلهای استاتیک، APIها و بسیاری از سرویسهای تحت وب روی ویندوز استفاده میشود.
در بسیاری از سرورها، مدیریت سایتها از طریق کنترل پنلهایی مثل Plesk انجام میشود. اما گاهی لازم است یک وبسایت را بهصورت دستی و مستقیم در IIS ایجاد کنید؛ مثلاً وقتی کنترل پنل ندارید، در حال تست یک پروژه هستید، میخواهید سایت را روی سرور مجازی ویندوز راهاندازی کنید، یا نیاز دارید تنظیمات دقیقتری روی Application Pool، Binding، مسیر فیزیکی و Hostname داشته باشید.
در این آموزش، قدمبهقدم یاد میگیرید چطور در IIS یک وبسایت جدید بسازید، پوشه سایت را آماده کنید، Application Pool مناسب ایجاد کنید، Binding و Hostname را تنظیم کنید، یک فایل تست بسازید و در نهایت سایت را در مرورگر بررسی کنید.
اگر هنوز با مفهوم سرور مجازی و تفاوت آن با هاست آشنا نیستید، پیشنهاد میکنیم قبل از ادامه، مقالههای سرور مجازی چیست؟ و هاست چیست؟ را هم مطالعه کنید. همچنین اگر قصد راهاندازی پروژه روی سرور دارید، صفحه سرور مجازی و اختصاصی پویاسازان میتواند برای انتخاب زیرساخت مناسب مفید باشد.
فهرست مطالب
- IIS چیست و چه کاربردی دارد؟
- چه زمانی باید سایت را دستی در IIS ایجاد کنیم؟
- پیشنیازهای ایجاد سایت در IIS
- مرحله ۱: ورود به ویندوز سرور از طریق RDP
- مرحله ۲: ساخت پوشه سایت، wwwroot و log
- مرحله ۳: ساخت فایل تست برای سایت
- مرحله ۴: باز کردن IIS Manager
- مرحله ۵: ساخت Application Pool اختصاصی
- مرحله ۶: اضافه کردن سایت جدید در IIS
- مرحله ۷: تنظیم Binding، Hostname و پورت
- مرحله ۸: اتصال دامنه به IP سرور
- مرحله ۹: بررسی دسترسی پوشه سایت
- مرحله ۱۰: تست سایت در مرورگر
- فعال کردن SSL برای سایت در IIS
- خطاهای رایج هنگام ساخت سایت در IIS
- چکلیست نهایی ایجاد سایت در IIS
- سوالات متداول
IIS چیست و چه کاربردی دارد؟
IIS مخفف Internet Information Services است و وبسرور مایکروسافت برای سیستمعامل ویندوز سرور محسوب میشود. با IIS میتوانید وبسایتها، اپلیکیشنهای تحت وب، APIها و سرویسهای مبتنی بر HTTP/HTTPS را روی سرور ویندوزی اجرا کنید.
IIS بیشتر برای پروژههای زیر استفاده میشود:
- سایتها و اپلیکیشنهای ASP.NET و ASP.NET Core
- سایتهای استاتیک HTML، CSS و JavaScript
- وبسرویسها و APIهای مبتنی بر .NET
- پنلهای سازمانی و داخلی شرکتها
- میزبانی چند سایت روی یک سرور ویندوزی
اگر پروژه شما با تکنولوژیهای مایکروسافت توسعه داده شده، IIS معمولاً یکی از گزینههای اصلی برای میزبانی آن است. برای درک بهتر اجزای IIS، مقاله IIS Application Pool چیست؟ را هم بخوانید.
چه زمانی باید سایت را دستی در IIS ایجاد کنیم؟
در بسیاری از سرویسهای هاست ویندوز، کاربران از طریق کنترل پنل سایت خود را مدیریت میکنند. اما در سرور مجازی یا سرور اختصاصی ویندوز، ممکن است بخواهید سایت را مستقیم در IIS بسازید.
ساخت دستی سایت در IIS در این موارد کاربرد دارد:
- کنترل پنلهایی مثل Plesk روی سرور نصب نیستند.
- میخواهید یک پروژه ASP.NET را مستقیم روی سرور تست کنید.
- نیاز دارید Application Pool اختصاصی برای سایت بسازید.
- میخواهید چند سایت با Hostnameهای مختلف روی یک IP داشته باشید.
- در حال راهاندازی سرور اختصاصی یا VPS ویندوز برای پروژه خود هستید.
- میخواهید تنظیمات Binding، SSL یا مسیر فیزیکی را دستی کنترل کنید.
اگر سایت شما عمومی و مهم است، بعد از ساخت سایت در IIS باید مواردی مثل امنیت، SSL، بکاپ، مانیتورینگ و بهروزرسانی ویندوز سرور را هم جدی بگیرید.
پیشنیازهای ایجاد سایت در IIS
قبل از شروع، این موارد را آماده داشته باشید:
- دسترسی Administrator به ویندوز سرور
- فعال بودن نقش IIS روی Windows Server
- دسترسی RDP به سرور
- فایلهای سایت یا حداقل یک فایل تست
- دامنه یا سابدامین، در صورت نیاز به دسترسی عمومی
- IP سرور برای تنظیم DNS دامنه
- در صورت نیاز، گواهی SSL برای فعالسازی HTTPS
اگر از سرور مجازی استفاده میکنید، میتوانید بسته به موقعیت کاربران، از سرور مجازی ایران یا سرور مجازی آلمان استفاده کنید. برای سایتهایی که مخاطب اصلی آنها داخل ایران است، انتخاب لوکیشن سرور میتواند روی تأخیر شبکه و تجربه کاربر اثر بگذارد.
مرحله ۱: ورود به ویندوز سرور از طریق RDP
برای ساخت سایت در IIS، ابتدا باید به ویندوز سرور وارد شوید. معمولاً این کار از طریق Remote Desktop یا همان RDP انجام میشود.
- در ویندوز خود برنامه Remote Desktop Connection را باز کنید.
- IP سرور را وارد کنید.
- نام کاربری و رمز عبور Administrator یا کاربر دارای دسترسی مدیریتی را وارد کنید.
- بعد از ورود، مطمئن شوید IIS روی سرور نصب و فعال است.
اگر IIS نصب نیست، باید از بخش Server Manager نقش Web Server (IIS) را نصب کنید. در ویندوز سرور معمولاً مسیر کلی به این شکل است:
Server Manager > Add roles and features > Web Server (IIS)مرحله ۲: ساخت پوشه سایت، wwwroot و log
برای نظم بهتر، بهتر است فایلهای هر سایت را در یک پوشه جداگانه قرار دهید. ساختار پیشنهادی میتواند شبیه این باشد:
C:\inetpub\sites\example.com
C:\inetpub\sites\example.com\wwwroot
C:\inetpub\sites\example.com\logsدر این ساختار:
wwwrootمحل قرارگیری فایلهای سایت است.logsمیتواند برای نگهداری لاگهای اختصاصی سایت استفاده شود.- پوشه اصلی سایت هم به مدیریت بهتر فایلها کمک میکند.
البته این ساختار اجباری نیست، اما برای مدیریت چند سایت روی یک سرور، استفاده از پوشهبندی منظم بسیار مهم است.
مرحله ۳: ساخت فایل تست برای سایت
قبل از اضافه کردن سایت در IIS، بهتر است یک فایل تست داخل پوشه wwwroot بسازید تا بعد از تنظیم سایت بتوانید عملکرد آن را سریع بررسی کنید.
اگر سایت شما ASP.NET است، میتوانید یک فایل index.aspx بسازید. اگر فقط میخواهید تست ساده انجام دهید، یک فایل index.html کافی است.
نمونه فایل index.html:
<!doctype html>
<html lang="fa">
<head>
<meta charset="utf-8">
<title>IIS Test</title>
</head>
<body>
<h1>سایت با موفقیت در IIS اجرا شد</h1>
</body>
</html>این فایل را در مسیر زیر ذخیره کنید:
C:\inetpub\sites\example.com\wwwroot\index.htmlمرحله ۴: باز کردن IIS Manager
برای ایجاد سایت جدید، باید وارد IIS Manager شوید.
چند روش برای باز کردن IIS Manager وجود دارد:
- از منوی Start عبارت IIS Manager را جستجو کنید.
- از مسیر Server Manager > Tools > Internet Information Services (IIS) Manager وارد شوید.
- یا از پنجره Run دستور زیر را اجرا کنید:
inetmgrبعد از باز شدن IIS Manager، نام سرور را در سمت چپ میبینید. زیر آن بخشهایی مثل Sites و Application Pools قرار دارد.
مرحله ۵: ساخت Application Pool اختصاصی
بهتر است برای هر سایت مهم، یک Application Pool اختصاصی بسازید. Application Pool باعث میشود اجرای سایتها از هم جدا شود و خطا یا مصرف منابع یک سایت، کمتر روی سایتهای دیگر اثر بگذارد.
- در IIS Manager از سمت چپ روی Application Pools کلیک کنید.
- از سمت راست گزینه Add Application Pool را انتخاب کنید.
- برای Application Pool یک نام مشخص وارد کنید؛ مثلاً
example.com. - نسخه .NET CLR را متناسب با پروژه انتخاب کنید.
- برای پروژههای ASP.NET Core معمولاً گزینه No Managed Code استفاده میشود.
- روی OK کلیک کنید.
اگر نمیدانید کدام گزینه مناسب پروژه شماست، باید نوع پروژه، نسخه .NET و روش Deploy را بررسی کنید. برای پروژههای کلاسیک ASP.NET معمولاً نسخه .NET CLR اهمیت دارد، اما در ASP.NET Core ساختار متفاوت است.
مرحله ۶: اضافه کردن سایت جدید در IIS
حالا میتوانید سایت جدید را در IIS ایجاد کنید.
- در IIS Manager از سمت چپ روی Sites راستکلیک کنید.
- گزینه Add Website را انتخاب کنید.
- در بخش Site name نام سایت را وارد کنید؛ مثلاً
example.com. - در بخش Application Pool همان Application Pool اختصاصی را انتخاب کنید.
- در بخش Physical path مسیر پوشه
wwwrootرا وارد کنید.
نمونه مسیر فیزیکی:
C:\inetpub\sites\example.com\wwwrootدر این مرحله، IIS میداند فایلهای سایت شما از کدام مسیر خوانده شوند.
مرحله ۷: تنظیم Binding، Hostname و پورت
Binding مشخص میکند سایت با چه IP، پورت و Hostnameی در دسترس باشد. هنگام اضافه کردن سایت، معمولاً باید این موارد را تنظیم کنید:
- Type: معمولاً
httpیاhttps - IP address: میتواند روی All Unassigned یا IP مشخص باشد
- Port: برای HTTP معمولاً 80 و برای HTTPS معمولاً 443
- Host name: دامنه سایت، مثل
example.com
برای راهاندازی ساده با HTTP، میتوانید Binding را اینطور تنظیم کنید:
Type: http
IP address: All Unassigned
Port: 80
Host name: example.comاگر چند سایت روی یک IP دارید، تنظیم درست Hostname بسیار مهم است. بدون Hostname، ممکن است IIS نداند درخواست مربوط به کدام سایت است یا سایت پیشفرض را نمایش دهد.
مرحله ۸: اتصال دامنه به IP سرور
اگر میخواهید سایت با دامنه واقعی باز شود، باید DNS دامنه را به IP سرور ویندوزی متصل کنید. معمولاً این کار با رکورد A انجام میشود.
نمونه رکورد DNS:
example.com A 192.0.2.10
www A 192.0.2.10بعد از تنظیم DNS، ممکن است مدتی زمان لازم باشد تا تغییرات در اینترنت منتشر شود. این موضوع به TTL و کش DNS بستگی دارد.
برای آشنایی کاملتر با این بخش، مقاله DNS چیست؟ را بخوانید. اگر هنوز در مرحله انتخاب سرویس میزبانی هستید، مقاله راهنمای جامع خرید هاست هم میتواند کمک کند تفاوت هاست، VPS و سرور را بهتر تشخیص دهید.
مرحله ۹: بررسی دسترسی پوشه سایت
اگر سایت ساخته شد اما با خطاهایی مثل 403، 500 یا Access Denied مواجه شدید، یکی از موارد مهم بررسی دسترسی پوشه سایت است.
در بسیاری از سناریوها، Application Pool Identity باید اجازه خواندن فایلهای سایت را داشته باشد. برای تنظیم دسترسی:
- روی پوشه سایت راستکلیک کنید.
- وارد Properties شوید.
- تب Security را باز کنید.
- دسترسی لازم را برای کاربر Application Pool یا گروه مناسب اضافه کنید.
برای Application Pool با نام example.com، identity معمولاً میتواند به شکل زیر باشد:
IIS AppPool\example.comبرای بیشتر سایتها، دسترسی Read و Execute کافی است. دسترسی Write را فقط زمانی بدهید که سایت واقعاً نیاز به آپلود فایل، ساخت فایل یا نوشتن در پوشه خاصی داشته باشد.
مرحله ۱۰: تست سایت در مرورگر
بعد از ساخت سایت، مرورگر را باز کنید و دامنه یا IP سرور را تست کنید.
اگر دامنه تنظیم شده باشد:
http://example.comاگر هنوز DNS تنظیم نشده یا میخواهید مستقیم از روی سرور تست کنید، میتوانید موقتاً از فایل hosts ویندوز استفاده کنید و دامنه را به IP سرور اشاره دهید.
اگر همه چیز درست باشد، فایل تستی که در پوشه wwwroot ساختید نمایش داده میشود.
فعال کردن SSL برای سایت در IIS
اگر سایت عمومی است، بهتر است بعد از راهاندازی اولیه، SSL را هم فعال کنید تا سایت با HTTPS باز شود. برای این کار باید یک گواهی SSL معتبر روی سرور نصب و سپس Binding نوع https را برای سایت اضافه کنید.
مراحل کلی فعال کردن SSL در IIS:
- گواهی SSL را تهیه یا ایجاد کنید.
- گواهی را در بخش Server Certificates در IIS نصب کنید.
- روی سایت موردنظر کلیک کنید.
- از سمت راست وارد بخش Bindings شوید.
- یک Binding جدید از نوع
httpsبا پورت 443 اضافه کنید. - گواهی SSL مناسب را انتخاب کنید.
- سایت را با HTTPS تست کنید.
برای آشنایی کاملتر با گواهی امنیتی و HTTPS، مقاله SSL چیست؟ را مطالعه کنید. اگر قصد دارید سایت را عمومی کنید، فعال بودن SSL برای اعتماد کاربران و امنیت ارتباطات ضروری است.
خطاهای رایج هنگام ساخت سایت در IIS
خطای 403 Forbidden
این خطا معمولاً زمانی رخ میدهد که فایل پیشفرض مثل index.html یا default.aspx وجود ندارد، Directory Browsing غیرفعال است یا دسترسی پوشه درست نیست.
خطای 500 Internal Server Error
این خطا میتواند به تنظیمات برنامه، web.config، نسخه .NET، دسترسی فایلها یا خطای داخلی اپلیکیشن مربوط باشد. برای بررسی دقیقتر، باید Event Viewer و لاگهای IIS را بررسی کنید.
سایت پیشفرض IIS نمایش داده میشود
اگر بهجای سایت شما صفحه پیشفرض IIS باز میشود، احتمالاً Binding یا Hostname سایت درست تنظیم نشده، یا دامنه به سایت دیگری روی همان سرور متصل شده است.
دامنه باز نمیشود اما با IP سایت دیده میشود
در این حالت احتمالاً مشکل از DNS است. رکورد A دامنه، کش DNS و تنظیم Hostname در IIS را بررسی کنید.
خطای 503 Service Unavailable
این خطا معمولاً به متوقف بودن Application Pool، کرش کردن برنامه یا تنظیمات اشتباه App Pool مربوط است. وضعیت Application Pool را در IIS بررسی کنید.
خطای مربوط به نسخه .NET
اگر پروژه شما به نسخه خاصی از .NET نیاز دارد، باید مطمئن شوید Runtime یا Hosting Bundle مناسب روی سرور نصب شده است.
چکلیست نهایی ایجاد سایت در IIS
| مورد | وضعیت مطلوب |
|---|---|
| IIS نصب و فعال است | Web Server Role روی ویندوز سرور فعال باشد |
| پوشه سایت ساخته شده | مسیر wwwroot و logs مشخص باشد |
| Application Pool اختصاصی | برای سایت مهم بهتر است App Pool جداگانه ساخته شود |
| Physical Path | به مسیر درست فایلهای سایت اشاره کند |
| Binding | پورت، IP و Hostname درست تنظیم شده باشند |
| DNS | رکورد A دامنه به IP سرور اشاره کند |
| Permission | Application Pool به پوشه سایت دسترسی لازم داشته باشد |
| فایل تست | index.html یا default.aspx برای تست وجود داشته باشد |
| SSL | برای سایت عمومی HTTPS فعال شود |
| لاگها | در صورت خطا، IIS Logs و Event Viewer بررسی شوند |
جمعبندی
ایجاد وبسایت به صورت دستی در IIS کار پیچیدهای نیست، اما نیاز دارد چند بخش بهدرستی کنار هم قرار بگیرند: پوشه سایت، Application Pool، Physical Path، Binding، Hostname، DNS و دسترسی فایلها. اگر هرکدام از این بخشها اشتباه تنظیم شود، ممکن است سایت باز نشود یا با خطاهایی مثل 403، 500 یا 503 مواجه شوید.
برای سایتهای ساده، ساخت یک پوشه، اضافه کردن سایت در IIS و تنظیم Binding کافی است. اما برای سایتهای جدیتر، بهتر است Application Pool اختصاصی، لاگ جداگانه، SSL معتبر، دسترسیهای محدود و مانیتورینگ مناسب داشته باشید.
اگر قصد دارید چند سایت یا پروژه ASP.NET را روی یک سرور ویندوزی اجرا کنید، مدیریت صحیح IIS و Application Pool اهمیت زیادی دارد. همچنین برای سایتهای عمومی، تنظیم DNS و فعالسازی SSL را فراموش نکنید.
سوالات متداول
آیا برای ایجاد سایت در IIS حتماً به کنترل پنل نیاز داریم؟
خیر. اگر به ویندوز سرور و IIS Manager دسترسی داشته باشید، میتوانید سایت را بهصورت دستی و بدون کنترل پنل ایجاد کنید.
برای هر سایت باید Application Pool جداگانه بسازیم؟
برای سایتهای مهم یا چندسایتی، بهتر است هر سایت Application Pool اختصاصی داشته باشد تا خطاها و مصرف منابع سایتها کمتر روی هم اثر بگذارند.
Physical Path در IIS چیست؟
Physical Path مسیر واقعی فایلهای سایت روی دیسک سرور است. IIS فایلهای سایت را از همین مسیر میخواند.
Binding در IIS چه کاربردی دارد؟
Binding مشخص میکند سایت با چه IP، پورت و Hostnameی در دسترس باشد. برای میزبانی چند سایت روی یک IP، Hostname بسیار مهم است.
چرا بعد از ساخت سایت، صفحه پیشفرض IIS نمایش داده میشود؟
احتمالاً Binding یا Hostname سایت درست نیست، یا دامنه به سایت پیشفرض سرور اشاره میکند. تنظیمات Sites و DNS را بررسی کنید.
چرا سایت در IIS خطای 403 میدهد؟
ممکن است فایل پیشفرض وجود نداشته باشد، Directory Browsing غیرفعال باشد یا دسترسی پوشه سایت درست تنظیم نشده باشد.
چرا سایت در IIS خطای 503 میدهد؟
خطای 503 معمولاً به متوقف بودن یا کرش کردن Application Pool مربوط است. وضعیت Application Pool و Event Viewer را بررسی کنید.
برای اتصال دامنه به سایت IIS چه رکوردی لازم است؟
معمولاً باید رکورد A دامنه یا سابدامین را به IP سرور ویندوزی متصل کنید و همان دامنه را در Hostname سایت داخل IIS تنظیم کنید.
آیا میتوان روی سایت IIS گواهی SSL نصب کرد؟
بله. باید گواهی SSL را در IIS نصب کنید و سپس Binding جدید از نوع HTTPS با پورت 443 برای سایت بسازید.
برای اجرای ASP.NET Core روی IIS چه چیزی لازم است؟
علاوه بر IIS، باید Hosting Bundle مناسب نسخه ASP.NET Core روی سرور نصب شود و Application Pool معمولاً روی No Managed Code تنظیم شود.
