Загальні відомості про веб-сервер IIS
Веб-сервери IIS 7 і пізніших версій мають повністю модульну архітектуру, яка пропонує три основні переваги:
Компонентизація
Всі функції веб-сервера тепер управляються як автономні компоненти, які можна легко додавати, видаляти та замінювати. Це дозволяє використовувати кілька ключових переваг у порівнянні з попередніми версіями IIS:
- Захистіть сервер, зменшуючи область атаки. Скорочення області поверхні є одним із найпотужніших способів захисту серверної системи. За допомогою служби IIS можна видалити всі функції сервера, що не використовуються, забезпечуючи мінімальну область поверхні при збереженні функціональних можливостей програми.
- Підвищення продуктивності та зменшення обсягу пам'яті. Видаляючи функції сервера, що не використовуються, ви також можете зменшити обсяг пам'яті, що використовується сервером, і підвищити продуктивність, зменшуючи обсяг коду компонентів, що виконуються при кожному запиті до програми.
- Створення користувацьких або спеціалізованих серверів. Вибравши певний набір функцій сервера, можна створювати сервери користувача, оптимізовані для виконання певної функції в топології програми, наприклад кешування кордонів або балансування навантаження. Ви можете додати функції користувача для розширення або заміни існуючих функцій за допомогою власних або сторонніх компонентів сервера, створених на основі нових API розширюваності. Компонентна архітектура надає довгострокові переваги для спільноти IIS: це спрощує розробку нових функцій сервера, оскільки вони необхідні як всередині корпорації Майкрософт, так і серед сторонніх розробників.
СЛУЖБА IIS також компонентувала потужну модель активації процесу HTTP, представлену в IIS 6.0 з пулами додатків. Модель активації процесу HTTP доступна не тільки для веб-застосунків, отримання запитів або повідомлень за будь-яким протоколом. Ця незалежна служба протоколу називається службою активації Windows (WAS). Windows Communication Foundation (WCF) поставляється з адаптерами протоколу, які можуть використовувати можливості WAS, підвищуючи надійність та використання ресурсів служб WCF.
Розширюваність
Розробники можуть використовувати модульну архітектуру IIS для створення потужних компонентів сервера, що розширюють або замінюють існуючі функції веб-сервера і додаючи цінність для веб-застосунків, розміщених у службах IIS.
Нижче наведено причини розробки для IIS:
- Надання можливостей веб-застосунків. Розширення служби IIS дозволяє веб-додаткам скористатися функціональними можливостями, які в багатьох випадках не можуть бути легко надані на рівні додатків. За допомогою ASP.NET IIS або власної розширюваності C++ розробники можуть створювати рішення, які додають цінність для всіх компонентів програми, таких як схеми перевірки автентичності, моніторинг і ведення журналу, фільтрація безпеки, балансування навантаження, перенаправлення вмісту і управління станом.
- Найкращий досвід розробки. Нова модель розширюваності C++ усуває більшість проблем, які раніше переслідували розробку ISAPI, ввівши спрощений об'єктно-орієнтований API, який сприяє написанню надійного коду сервера. Крім того, покращена інтеграція Visual Studio покращує можливості розробки для IIS.
- Використовуйте повну потужність ASP.NET.ASP.NET інтеграція дозволяє швидко розробляти серверні модулі за допомогою знайомих інтерфейсів ASP.NET 2.0 та розширених служб додатків ASP.NET. модулі ASP.NET можуть надавати служби в asp, CGI, статичних файлах та інших типах контенту та повністю розширити сервер без обмежень, які є у попередніх версіях IIS.
інтеграція ASP.NET
IIS дозволяє веб-додаткам повністю використовувати потужні функції та розширюваність ASP.NET 2.0. ASP.NET функції, включаючи автентифікацію на основі форм, членство, стан сеансу і багато інших, можна використовувати для всіх типів контенту, забезпечуючи єдиний інтерфейс для всього веб-додатку. Розробники можуть використовувати знайому модель розширюваності ASP.NET і розширені API .NET для створення функцій сервера IIS, які є настільки потужними, як написані за допомогою власних API C++.
Використовуйте наведені нижче посилання, щоб почати навчання аспектам конфігурації IIS, ознайомтеся з лабораторією початку роботи та скачування комплектів з ресурсами, доступними на IIS.NET.
Початок навчання
Почати
- Випуски та віртуальні лабораторії Windows Server 2008 R2 (https://www.microsoft.com/server-cloud/windows-server/2008-r2-trial.aspx
Завантаження
Введення в архітектуру IIS
Служби IIS 7 і пізніших версій надають архітектуру обробки запитів, яка включає:
- Служба активації процесів Windows (WAS), яка дозволяє сайтам використовувати протоколи, відмінні від HTTP та HTTPS.
- Підсистема веб-сервера, яку можна настроїти шляхом додавання або видалення модулів.
- Інтегровані конвеєри обробки запитів із IIS та ASP.NET.
Компоненти у службах IIS
СЛУЖБИ IIS містять кілька компонентів, які виконують важливі функції для ролей програми та веб-сервера у Windows Server® 2008 (IIS 7.0) та Windows Server 2008 R2 (IIS 7.5). Кожен компонент несе такі обов'язки, як прослуховування запитів до сервера, керування процесами та читання конфігураційних файлів. До цих компонентів належать прослуховувачі протоколів, такі як HTTP.sys, та служби, такі як служба веб-публікації (служба WWW) та служба активації процесів Windows (WAS).
Прослуховувачі протоколів
Прослуховувачі протоколу отримують запити, що стосуються протоколу, надсилають їх у IIS для обробки, а потім повертають відповіді ініціаторам запиту. Наприклад, коли клієнтський браузер запитує веб-сторінку з Інтернету, прослуховувач HTTP, HTTP.sys отримує запит і відправляє його в IIS для обробки. Після обробки запиту iis HTTP.sys повертає відповідь у клієнтський браузер.
За промовчанням IIS надає HTTP.sys як прослуховувач протоколу, який прослуховує запити HTTP і HTTPS. HTTP.sys з'явилася в IIS 6.0 як прослуховувач протоколу HTTP для HTTP-запитів. HTTP.sys залишається прослуховувачем HTTP у IIS 7 і пізніших версіях, але включає підтримку ssl.
Для підтримки служб і програм, які використовують протоколи, відмінні від HTTP та HTTPS, можна використовувати такі технології, як Windows Communication Foundation (WCF). У WCF є адаптери прослуховувача, які забезпечують функціональні можливості як прослуховувача протоколу, так і адаптера прослуховувача. Адаптери прослуховувача розглядаються далі у цьому документі. Додаткові відомості про WCF див. у статті Windows Communication Foundation на сайті MSDN.
Стек протоколу передачі гіпертексту (HTTP.sys)
Прослуховувач HTTP є частиною мережевої підсистеми операційних систем Windows і реалізується як драйвер пристрою в режимі ядра, що називається стеком HTTP (HTTP.sys). HTTP.sys прослуховує HTTP-запити з мережі, передає запити IIS для обробки, а потім повертає оброблені відповіді в клієнтські браузери.
У IIS 6.0 HTTP.sys замінив API сокетів Windows (Winsock), який був компонентом режиму користувача, який використовувався в попередніх версіях IIS для отримання HTTP-запитів і відправки HTTP-відповідей. СЛУЖБИ IIS 7 і пізніших версій, як і раніше, використовують HTTP.sys для HTTP-запитів.
HTTP.sys надає такі переваги:
- Кешування у режимі ядра. Запити кешованих відповідей обслуговуються без перемикання в режим користувача.
- Черга запитів у режимі ядра. Запити призводять до зменшення витрат під час переключення контексту, оскільки ядро перенаправляє запити у правильний робочий процес. Якщо робочий процес недоступний для прийняття запиту, черга запитів у режимі ядра зберігатиме запит доти, доки робочий процес не прийме його.
- Попередня обробка запитів та фільтрація з безпеки.
Служба публікації в Інтернеті (служба WWW)
У IIS 7 і пізніших версіях функції, які раніше оброблялися лише службою веб-публікації (WWW Service), тепер розділені між двома службами: службою WWW та новою службою активації Windows (WAS). Ці дві служби виконуються як LocalSystem в одному Svchost.exe процесі і спільно використовують одні й самі двійкові файли.
У документації також може відображатися служба WWW, яка називається W3SVC.
Як працює служба WWW у IIS 6.0
У IIS 6.0 служба WWW керує такими основними областями IIS:
- Адміністрація та налаштування HTTP
- Управління процесами
- Моніторинг продуктивності
Адміністрація та налаштування HTTP
Служба WWW зчитує відомості про конфігурацію з метабази IIS та використовує ці відомості для налаштування та оновлення прослуховувача HTTP, HTTP.sys. Крім того, служба WWW запускає, зупиняє, відстежує та керує робочими процесами, що обробляють HTTP-запити.
Моніторинг продуктивності
Служба WWW відстежує продуктивність та надає лічильники продуктивності для веб-сайтів та кешу IIS.
Управління процесами
Служба WWW керує пулами додатків та робочими процесами, такими як запуск, зупинка та перезапуск робочих процесів. Крім того, служба WWW відстежує працездатність робочих процесів і викликає швидке виявлення збою, щоб зупинити запуск нових процесів при збої декількох робочих процесів в час, що налаштовується.
Як служба WWW працює у IIS
У СЛУЖБАХ IIS служба WWW більше не керує робочими процесами. Натомість служба WWW є адаптером прослуховувача для прослуховувача HTTP, HTTP.sys. Як адаптер прослуховувача служба WWW в першу чергу відповідає за налаштування HTTP.sys, оновлення HTTP.sys при зміні конфігурації та повідомлення WAS, коли запит входить до черги запитів.
Крім того, WWW продовжує збирати лічильники для веб-сайтів. Оскільки лічильники продуктивності залишаються частиною служби WWW, вони належать до HTTP і не застосовуються до WAS.
Служба активації Windows (WAS)
У IIS 7 і пізніших версіях служба активації windows (WAS) керує конфігурацією пула додатків та робочими процесами замість служби WWW.Це дозволяє використовувати ту саму конфігурацію та модель процесу для сайтів HTTP та сайтів, відмінних від HTTP.
Крім того, можна запустити WAS без служби WWW, якщо вам не потрібна функція HTTP. Наприклад, ви можете керувати веб-службою за допомогою адаптера прослуховувача WCF, наприклад NetTcpActivator, без запуску служби WWW, якщо вам не потрібно прослуховувати запити HTTP в HTTP.sys. Відомості про адаптери прослуховувача WCF та про розміщення програм WCF у IIS 7 і пізніших версіях за допомогою WAS див. у статті Розміщення у WCF на сайті MSDN.
Керування конфігурацією в WAS
Під час запуску WAS зчитує певні відомості з файлу ApplicationHost.config і передає інформацію адаптерам прослуховувача на сервері. Адаптери прослуховувачів – це компоненти, які встановлюють зв'язок між WAS та прослуховувачами протоколів, наприклад HTTP.sys. Коли адаптери прослуховувачів отримують інформацію про конфігурацію, вони налаштовують зв'язані прослуховувачі протоколів і готують прослуховувачі для прослуховування запитів.
У випадку з WCF адаптер прослуховувача включає функції прослуховувача протоколу. Таким чином, адаптер прослуховувача WCF, наприклад NetTcpActivator, налаштовується на основі відомостей із WAS. Після установки NetTcpActivator він прослуховує запити, що використовують протокол net.tcp. Для отримання додаткових відомостей про адаптери прослуховувача WCF див. статтю Архітектура активації WAS на сайті MSDN.
У наступному списку описано тип відомостей, які WAS зчитує з конфігурації:
- Відомості про глобальну конфігурацію
- Відомості про конфігурацію протоколу для протоколів HTTP та протоколів, відмінних від HTTP
- Конфігурація пула додатків, наприклад, відомості про обліковий запис процесу
- Конфігурація сайту, наприклад прив'язки та програми
- Конфігурація програми, наприклад, включені протоколи та пули додатків, до яких належать програми
Якщо ApplicationHost.config зміни, WAS отримує повідомлення та оновлює адаптери прослуховувача новими відомостями.
Управління процесами
WAS управляє пулами додатків та робочими процесами для http-і не http-запитів. Коли прослуховувач протоколу приймає запит клієнта, WAS визначає, чи виконується робочий процес. Якщо в пулі програм уже є робочий процес, який обслуговує запити, адаптер прослуховувача передає запит робочому процесу обробки. Якщо в пулі програм немає робочого процесу, WAS запустить робочий процес, щоб адаптер прослуховувача зміг передати йому запит для обробки.
Оскільки WAS управляє процесами як для протоколів HTTP, так і для протоколів, відмінних від HTTP, можна запускати програми з різними протоколами в одному пулі додатків. Наприклад, можна розробити програму, наприклад службу XML, і розмістити її за протоколом HTTP та net.tcp.
Модулі у IIS
СЛУЖБИ IIS надають нову архітектуру, відмінну від попередніх версій IIS. Замість того, щоб зберегти більшу частину функціональності на самому сервері, служби IIS включають підсистему веб-сервера, в якій можна додавати або видаляти компоненти, які називаються модулями, залежно від ваших потреб.
Модулі – це окремі функції, які сервер використовує для обробки запитів. Наприклад, СЛУЖБИ IIS використовують модулі автентифікації для автентифікації облікових даних клієнта, а модулі кешу — для керування діями кешу.
Нова архітектура надає наступні переваги, порівняно з попередніми версіями IIS.
- Ви можете керувати потрібними модулями на сервері.
- Ви можете налаштувати сервер для певної ролі у вашому середовищі.
- Можна використовувати модулі для заміни існуючих модулів або для впровадження нових функцій.
Нова архітектура також підвищує безпеку та спрощує адміністрування. Видаляючи непотрібні модулі, ви зменшуєте область атак сервера та обсяг пам'яті, тобто обсяг пам'яті, що використовується робочими процесами сервера на комп'ютері. Ви також позбавляєте необхідності керувати функціями, які не потрібні для сайтів і додатків.
Власні модулі
У наступних розділах описуються власні модулі, доступні при повній установці IIS 7 та пізніших версій. Ви можете видалити їх або замінити модулями користувача в залежності від ваших потреб.
Модулі HTTP
Кілька модулів IIS 7 і пізніших версій виконують завдання, що стосуються протоколу HTTP, в конвеєрі обробки запитів. Модулі HTTP включають модулі для реагування на інформацію та запити, надіслані в заголовках клієнта, для повернення помилок HTTP, перенаправлення запитів та багато іншого.
| Ім'я модуля | Опис | Ресурс |
|---|---|---|
| CustomErrorModule | Відправляє повідомлення про помилки http за промовчанням і налаштовані під час встановлення коду стану помилки у відповіді. | Inetsrv\Custerr.dll |
| HttpRedirectionModule | Підтримує перенаправлення, що настроюється для HTTP-запитів. | Inetsrv\Redirect.dll |
| ProtocolSupportModule | Виконує дії, пов'язані з протоколом, такі як налаштування заголовків відповідей та перенаправлення заголовків на основі конфігурації. | Inetsrv\Protsup.dll |
| RequestFilteringModule | Додано до IIS 7.5. Фільтрує запити, налаштовані для керування поведінкою протоколу та вмісту. | Inetsrv\modrqflt.dll |
| WebDAVModule | Додано до IIS 7.5.Забезпечує безпечнішу публікацію вмісту за протоколом HTTP за протоколом SSL. | Inetsrv\WebDAV.dll |
Модулі безпеки
Кілька модулів IIS виконують завдання, пов'язані з безпекою в конвеєрі обробки запитів. Крім того, існують окремі модулі для кожної зі схем автентифікації, які дозволяють вибрати модулі для типів автентифікації, які ви хочете використовувати на сервері. Існують також модулі, які виконують авторизацію URL-адреси, та модуль, який фільтрує запити.
| Ім'я модуля | Опис | Ресурс |
|---|---|---|
| AnonymousAuthenticationModule | Виконує анонімну автентифікацію за відсутності інших методів автентифікації. | Inetsrv\Authanon.dll |
| Основна AuthenticationModule | Виконує звичайну автентифікацію. | Inetsrv\Authbas.dll |
| CertificateMappingAuthenticationModule | Виконує автентифікацію на основі зіставлення сертифікатів за допомогою Active Directory. | Inetsrv\Authcert.dll |
| DigestAuthenticationModule | Виконує дайджест-перевірку справжності. | Inetsrv\Authmd5.dll |
| IISCertificateMappingAuthenticationModule | Виконує автентифікацію зіставлення сертифікатів за допомогою конфігурації сертифіката IIS. | Inetsrv\Authmap.dll |
| RequestFilteringModule | Виконує завдання URLScan, такі як налаштування дозволених команд та розширень імен файлів, встановлення обмежень та перевірка на наявність неправильних послідовностей символів. | Inetsrv\Modrqflt.dll |
| UrlAuthorizationModule | Авторизує URL-адресу. | Inetsrv\Urlauthz.dll |
| WindowsAuthenticationModule | Виконує вбудовану автентифікацію NTLM. | Inetsrv\Authsspi.dll |
| IpRestrictionModule | Обмежує IPv4-адреси, перелічені у списку ipSecurity у конфігурації. | Inetsrv\iprestr.dll |
Модулі вмісту
Кілька модулів IIS виконують завдання, пов'язані з вмістом в конвеєрі обробки запитів. Модулі вмісту включають модулі для обробки запитів статичних файлів, для повернення сторінки за замовчуванням, коли клієнт не вказує ресурс у запиті, для перерахування вмісту каталогу та багато іншого.
| Ім'я модуля | Опис | Ресурс |
|---|---|---|
| CgiModule | Виконує процеси CGI для створення вихідних даних відповіді. | Inetsrv\Cgi.dll |
| DefaultDocumentModule | Намагається повернути стандартний документ для запитів, виконаних у батьківський каталог. | Inetsrv\Defdoc.dll |
| DirectoryListingModule | Висновок у вигляді списку вмісту каталогу. | Inetsrv\dirlist.dll |
| IsapiModule | Розміщує бібліотеки DLL розширення ISAPI. | Inetsrv\Isapi.dll |
| IsapiFilterModule | Підтримує бібліотеки DLL фільтр ISAPI. | Inetsrv\Filter.dll |
| ServerSideIncludeModule | Процеси з боку сервера включають код. | Inetsrv\Iis_ssi.dll |
| StaticFileModule | Обслуговує статичні файли. | Inetsrv\Static.dll |
| FastCgiModule | Підтримує FastCGI, який забезпечує високопродуктивну альтернативу CGI. | Inetsrv\iisfcgi.dll |
Модулі стиснення
Два модулі IIS виконують стиснення в конвеєрі обробки запитів.
| Ім'я модуля | Опис | Ресурс |
|---|---|---|
| DynamicCompressionModule | Стискає відповіді та застосовує код передачі стиснення Gzip до відповідей. | Inetsrv\Compdyn.dll |
| StaticCompressionModule | Виконує попередній стиск статичного вмісту. | Inetsrv\Compstat.dll |
Кешування модулів
Кілька модулів IIS виконують завдання, пов'язані з кешуванням в конвеєрі обробки запитів.Кешування підвищує продуктивність веб-сайтів та веб-додатків за рахунок зберігання оброблених відомостей, таких як веб-сторінки, у пам'яті сервера, а потім повторного використання цієї інформації у наступних запитах того ж ресурсу.
| Ім'я модуля | Опис | Ресурс |
|---|---|---|
| FileCacheModule | Забезпечує кешування в режимі користувача для файлів і дескрипторів файлів. | Inetsrv\Cachfile.dll |
| HTTPCacheModule | Надає кешування в режимі ядра та режимі користувача в HTTP.sys. | Inetsrv\Cachhttp.dll |
| TokenCacheModule | Забезпечує кешування в режимі користувача пар імені користувача та маркера для модулів, що створюють суб'єкти-користувачі Windows. | Inetsrv\Cachtokn.dll |
| UriCacheModule | Забезпечує кешування відомостей ПРО URL-адресу в режимі користувача. | Inetsrv\Cachuri.dll |
Модулі ведення журналу та діагностики
Декілька модулів у IIS виконують завдання, пов'язані з веденням журналу та діагностикою в конвеєрі обробки запитів. Модулі ведення журналу підтримують завантаження модулів і передачу інформації в HTTP.sys. Модулі діагностики наслідують і повідомляють про події під час обробки запиту.
| Ім'я модуля | Опис | Ресурс |
|---|---|---|
| CustomLoggingModule | Завантажує модулі ведення журналу. | Inetsrv\Logcust.dll |
| FailedRequestsTracingModule | Підтримує функцію трасування невдалих запитів. | Inetsrv\Iisfreb.dll |
| HttpLoggingModule | Передає інформацію та стан обробки в HTTP.sys для ведення журналу. | Inetsrv\Loghttp.dll |
| RequestMonitorModule | Відстежує запити, що виконуються в даний час у робочих процесах, та повідомляє інформацію про стан середовища виконання та інтерфейс управління програмами (RSCA). | Inetsrv\Iisreqs.dll |
| TracingModule | Повідомляє про події у службі трасування подій Майкрософт для Windows (ETW). | Inetsrv\Iisetw.dll |
Керовані модулі підтримки
Кілька модулів IIS підтримують керовану інтеграцію в конвеєрі обробки запитів IIS.
| Ім'я модуля | Опис | Ресурс |
|---|---|---|
| ManagedEngine | Забезпечує інтеграцію модулів керованого коду конвеєрі обробки запитів IIS. | Microsoft.NET\Framework\v2.0.50727\webengine.dll |
| ConfigurationValidationModule | Перевіряє проблеми конфігурації, наприклад, коли програма виконується в режимі інтеграції, але в розділі system.web оголошено обробників або модулів. | Inetsrv\validcfg.dll |
Керовані модулі
Крім власних модулів служби IIS, дозволяють використовувати модулі керованого коду для розширення функціональних можливостей IIS. Деякі керовані модулі, наприклад UrlAuthorization, мають власний модуль, який надає власну альтернативу керованому модулю.
Керовані модулі залежить від модуля ManagedEngine.
У наступній таблиці перераховані керовані модулі, доступні з повною установкою IIS 7 та пізніших версій. Додаткові відомості про керовані модулі див. у пакеті SDK для .NET Framework версії 2.0 на сайті MSDN.
| Ім'я модуля | Опис | Ресурс |
|---|---|---|
| anonymousidentification | Керує анонімними ідентифікаторами, які використовуються функціями, що підтримують анонімну ідентифікацію, наприклад, ASP.NET профілем. | System.Web.Security.AnonymousIdentificationModule |
| DefaultAuthentication | Забезпечує присутність у контексті об'єкта автентифікації. | System.Web.Security.DefaultAuthenticationModule |
| FileAuthorization | Перевіряє, чи користувач має дозвіл на доступ до запрошених файлів. | System.Web.Security.FileAuthorizationModule |
| FormsAuthentication | Підтримує автентифікацію за допомогою форм. | System.Web.Security.FormsAuthenticationModule |
| OutputCache | Підтримує кешування вихідних даних. | System.Web.Caching.OutputCacheModule |
| Профіль | Керує профілями користувачів за допомогою ASP.NET профілю, який зберігає та витягує параметри користувача у джерелі даних, наприклад, у базі даних. | System.Web.Profile.ProfileModule |
| RoleManager | Керує екземпляром RolePrincipal для поточного користувача. | System.Web.Security.RoleManagerModule |
| Сеанс | Підтримує збереження стану сеансу, що дозволяє зберігати дані, що стосуються одного клієнта, у програмі на сервері. | System.Web.SessionState.SessionStateModule |
| UrlAuthorization | Визначає, чи дозволено поточному користувачеві доступ до запитуваної URL-адреси на основі імені користувача або списку ролей, членом яких є користувач. | System.Web.Security.UrlAuthorizationModule |
| UrlMappingsModule | Підтримує зіставлення реальної URL-адреси з більш зрозумілою URL-адресою. | System.Web.UrlMappingsModule |
| WindowsAuthentication | Задає посвідчення користувача для програми ASP.NET, якщо увімкнено автентифікацію Windows. | System.Web.Security.WindowsAuthenticationModule |
Обробка запитів у IIS
У IIS конвеєри запитів IIS та ASP.NET об'єднані для обробки запитів за допомогою інтегрованого підходу. Нова архітектура обробки запитів складається із впорядкованого списку власних та керованих модулів, які виконують певні завдання у відповідь на запити.
Така конструкція забезпечує низку переваг у порівнянні з попередніми версіями IIS.По-перше, всі типи файлів можуть використовувати функції, які були доступні тільки для керованого коду. Наприклад, тепер можна використовувати ASP.NET автентифікації за допомогою форм і авторизації url-адреси для статичних файлів, asp-файлів і всіх інших типів файлів на сайтах і в додатках.
По-друге, така конструкція виключає дублювання кількох функцій у IIS та ASP.NET. Наприклад, коли клієнт запитує керований файл, сервер викликає відповідний модуль автентифікації у вбудованому конвеєрі для автентифікації клієнта. У попередніх версіях IIS цей же запит проходив автентифікацію як в конвеєрі IIS, так і в конвеєрі ASP.NET.
По-третє, ви можете керувати всіма модулями в одному розташуванні, а не керувати деякими функціями IIS і деякими в конфігурації ASP.NET. Це спрощує адміністрування сайтів та програм на сервері.
Пули додатків у IIS
Пули додатків поділяють програми за межами процесу, щоб запобігти впливу програми на іншу програму на сервері. У IIS 7 та пізніших версіях пули додатків продовжують використовувати режим ізоляції робочих процесів IIS 6.0. Крім того, тепер можна вказати параметр, який визначає спосіб обробки запитів, які використовують керовані ресурси: інтегрований чи класичний режим.
У IIS 6.0 режим ізоляції робочих процесів та режим ізоляції IIS 5.0 задаються на рівні сервера. Це унеможливлює виконання обох режимів ізоляції на одному сервері.Однак у IIS 7 і пізніших версіях режими інтеграції та класичні режими задаються на рівні пула додатків, що дозволяє запускати програми одночасно в пулах додатків з різними режимами обробки на одному сервері.
Режим інтегрованого пулу додатків
Якщо програмний пул знаходиться в режимі інтеграції, ви можете скористатися перевагами інтегрованої архітектури обробки запитів IIS і ASP.NET. Коли робочий процес у пулі додатків отримує запит, проходить через впорядкований список подій. Кожна подія викликає необхідні власні та керовані модулі для обробки частин запиту та створення відповіді.
Запуск пулів додатків у режимі інтеграції має кілька переваг. Спочатку моделі обробки запитів IIS та ASP.NET інтегровані в єдину модель процесів. Ця модель виключає кроки, які раніше дублювалися в IIS та ASP.NET, наприклад автентифікацію. Крім того, інтегрований режим забезпечує доступність керованих функцій всім типів контенту.
Класичний режим пула додатків
Якщо пул додатків перебуває у класичному режимі, IIS 7 і пізніших версій обробляють запити як і, як й у режимі ізоляції робочих процесів IIS 6.0. ASP.NET запити спочатку проходять власні етапи обробки IIS, а потім направляються в Aspnet_isapi.dll для обробки керованого коду в керованому середовищі виконання. Нарешті, запит надсилається через СЛУЖБИ IIS для надсилання відповіді.
Такий поділ моделей IIS та ASP.NET обробки запитів призводить до дублювання деяких етапів обробки, таких як автентифікація та авторизація.Крім того, функції керованого коду, такі як автентифікація за допомогою форм, доступні тільки для ASP.NET додатків або додатків, для яких скрипт зіставляє всі запити, що обробляються aspnet_isapi.dll.
Обов'язково протестуйте існуючі програми на сумісність у режимі інтеграції перед оновленням робочого середовища до IIS 7 і пізніших версій і призначенням додатків пулам у режимі інтеграції. додаток може покладатися на маркер автентичності, що передається з IIS в кероване середовище виконання, і через нову архітектуру в IIS 7 і пізніших версіях процес порушує роботу програми.
Обробка HTTP-запитів у IIS
IIS 7 і пізніших версій мають аналогічний потік обробки http-запитів, як і IIS 6.0 На схемах у цьому розділі представлений огляд HTTP-запиту в процесі.
У цьому списку описується потік обробки запитів, показаний на рис.
- Коли браузер клієнта ініціює запит HTTP для ресурсу на веб-сервері, HTTP.sys перехоплює запит.
- HTTP.sys контакти WAS для отримання відомостей зі сховища конфігурації.
- WAS запитує про конфігурацію зі сховища конфігурацій applicationHost.config.
- Служба WWW отримує відомості про конфігурацію, такі як пул додатків та конфігурація сайту.
- Служба WWW використовує інформацію про конфігурацію для налаштування HTTP.sys.
- WAS запускає робочий процес для пула додатків, якого було зроблено запит.
- Робочий процес обробляє запит та повертає відповідь на HTTP.sys.
- Клієнт отримує відповідь.
1. Загальні відомості про HTTP-запит
У робочому процесі HTTP-запит проходить кілька впорядкованих кроків, які називаються подіями, в основних веб-серверах. На кожній події власний модуль обробляє частину запиту, наприклад, автентифікацію користувача або додавання відомостей до журналу подій. Якщо для запиту потрібен керований модуль, власний модуль ManagedEngine створює AppDomain, де керований модуль може виконувати необхідну обробку, наприклад автентифікацію користувача за допомогою автентичності на основі форм. Коли запит проходить через всі події в основних веб-серверах, відповідь повертається до HTTP.sys. На малюнку 2 нижче показаний HTTP-запит, що входить у робочий процес.
Мал. 2. Детальні відомості про HTTP-запит усередині робочого процесу
Що таке IIS
(Internet Information Services) — це програмне забезпечення для розгортання веб-сервера. Входить до складу Windows.
Підтримує роботу за протоколами HTTP, HTTPS, FTP, SMTP, POP3.
IIS можна встановити не лише на Windows Server, а й на клієнтську версію операційної системи. Наприклад, у Windows 10 установка виконується з оснастки «Програми та компоненти» увімкненням вбудованого компонента Служби IIS. Для розгортання новішої версії, IIS можна завантажити з сайту Microsoft.
Налаштування IIS здійснюється в консолі «Диспетчер служб IIS». Вона встановлюється на будь-який комп'ютер у мережі, дозволяючи керувати сервером віддалено або ставиться безпосередньо на веб-сервер.
Докладніше про IIS на сайті Вікіпедія
