Что такое IIS и зачем он нужен для сайтов на .NET?
При деплое ASP.NET постоянно всплывает аббревиатура IIS. Что это за штука, чем отличается от Apache/Nginx и обязательно ли его использовать?
2 ответа
IIS (Internet Information Services) — это веб-сервер от Microsoft, встроенный в Windows Server. По роли он такой же, как Apache или Nginx: принимает HTTP-запросы извне и отдаёт страницы/файлы или передаёт запрос приложению.
Что делает IIS:
- Слушает порты 80/443, обрабатывает HTTP/HTTPS.
- Хостит сайты и приложения ASP.NET.
- Отдаёт статику (картинки, css, js).
- Управляет SSL-сертификатами, пулами приложений, авторизацией.
Отличия от Nginx/Apache:
- IIS работает только на Windows, настраивается через графический «Диспетчер IIS» или
web.config. - Nginx/Apache — кроссплатформенные, конфиг текстовый.
Обязателен ли он? Нет. Современный ASP.NET Core имеет встроенный сервер Kestrel и прекрасно крутится на Linux за Nginx. IIS на Windows-хостинге часто работает как «реверс-прокси» перед Kestrel — то есть принимает запрос и передаёт его приложению.
Короче: IIS нужен, если деплоишь на Windows Server. На Linux его место занимает Nginx + Kestrel.
Маленькое уточнение для разработчиков: в Windows есть облегчённая версия — IIS Express, она ставится вместе с Visual Studio и используется для локального запуска проекта при отладке. Так что ты, скорее всего, уже пользовался IIS, даже если не настраивал полноценный сервер.