Iis настройка времен ожидания в оснастке internet information services


Содержание

Настройка IIS

Веб-сервер IIS, как среда выполнения веб-приложения, имеет некоторое влияние на общую производительность. Например, чем короче конвейер обработки запросов в IIS, тем меньше кода будет выполняться и тем выше будет скорость работы. В IIS имеются механизмы, которые можно использовать для увеличения производительности приложения за счет снижения задержек и увеличения пропускной способности, а также некоторые механизмы, которые при правильной настройке могут увеличить общую производительность приложения.

Кэширование вывода

Мы уже знаем, что ASP.NET поддерживает собственный механизм кеширования вывода, зачем же использовать еще один подобный механизм в IIS? Ответ на этот вопрос прост: помимо страниц ASP.NET существуют и другие виды содержимого, которое можно кешировать. Например, мы можем кешировать часто запрашиваемые статические файлы изображений или вывод собственных обработчиков HTTP-запросов. Для этой цели как раз и можно использовать механизм кеширования, поддерживаемый веб-сервером IIS.

В IIS имеется два механизма кеширования: кеш в пространстве пользователя и кеш в пространстве ядра.

Кеширование в пространстве пользователя

Так же как ASP.NET, веб-сервер IIS способен кешировать ответы в памяти, чтобы ответы на последующие запросы могли отправляться из кеша в памяти, без обращения к статическим файлам на диске и без вызова программного кода на стороне сервера.

Чтобы настроить кеширование, откройте приложение IIS Manager, выберите свое веб-приложение, откройте настройку Output Caching (Кеширование вывода), щелкните на ссылке Add (Добавить) в панели Actions (Действия), чтобы добавить новое правило кеширования, или выберите существующее правило для редактирования.

Чтобы создать новое правило кеширования в пространстве пользователя, добавьте новое правило, введите расширение имен файлов, которые требуется кешировать, и отметьте флажок User-mode caching (Кеширование в режиме пользователя) в диалоге Add Cache Rule (Добавить правило кеширования), как показано на рисунке ниже:

Отметив флажок, вы получите возможность выбирать, когда кешированный элемент будет удаляться из памяти, после обновления файла на диске или спустя некоторое время с момента кеширования. Для статических файлов больше подходит вариант удаления после обновления, тогда как определение интервала времени больше подходит для динамического содержимого. Щелкнув на кнопке Advanced (Дополнительно) можно получить доступ к настройкам, управляющим кешированием различных версий вывода (согласно параметрам в строке запроса или HTTP-заголовкам).

После добавления правила кеширования, настройки сохраняются в файле web.config приложения, в разделе system.webServer caching. Например, для правила кеширования страниц .aspx на срок до 30 минут, с учетом HTTP-заголовка Accept-Language, будет сгенерирован следующий код в конфигурационном файле:

Кеширование в пространстве ядра

В отличие от механизма кеширования в пространстве пользователя, сохраняющего информацию в памяти рабочего процесса IIS, механизм кеширования в пространстве ядра сохраняет информацию в памяти драйвера HTTP.sys. Кеширование в пространстве ядра обеспечивает более короткое время отклика, однако оно поддерживается не всегда. Например, кеширование в пространстве ядра нельзя использовать, когда запрос содержит строку с параметрами запроса или когда запрос не является анонимным запросом.

Настройка правил кеширования в пространстве ядра выполняется почти так же, как кеширование в пространстве пользователя. В диалоге настройки правила установите флажок Kernel-mode caching (Кеширование в режиме ядра) и выберите желаемый способ кеширования.

В одном правиле допускается использовать оба режима кеширования, в пространстве ядра и в пространстве пользователя. В этом случае IIS будет сначала пытаться применить кеширование в пространстве ядра. Если попытка не увенчается успехом, например, когда запрос содержит строку с параметрами, применяется кеширование в пространстве пользователя.

Если выбран вариант кеширования на определенный интервал времени в обоих режима, в пространстве ядра и в пространстве пользователя, оба интервала должны совпадать, в противном случае в обоих режимах будет использоваться интервал, установленный для кеширования в режиме ядра.

Настройка пула приложения

Параметры настройки пула приложения определяют, как IIS будет создавать и поддерживать рабочие процессы, в рамках которых будет выполняться наш код. В ходе установки IIS и ASP.NET создается несколько пулов приложений, в зависимости от установленной версии .NET, к которым вы можете добавлять новые пулы, по мере развертывания дополнительных веб-приложений. При создании пула приложения, он получает некоторые параметры настройки со значениями по умолчанию, управляющие его поведением. Например, каждый пул получает тайм-аут простоя, после которого этот пул приложения останавливается.

Понимание значения некоторых из этих настроек может помочь вам настроить работу пула и тем самым более полно удовлетворить потребности приложения.

Перезапуск

Изменяя параметр настройки перезапуска можно управлять моментом, когда пул приложения будет перезапускать рабочий процесс. Например, можно организовать перезапуск рабочего процесса через каждые несколько часов или когда будет превышен некоторый предел занимаемой памяти. Если с течением времени веб-приложение начинает потреблять большие объемы памяти (например, для хранения объектов), увеличение количества перезапусков может помочь удерживать его производительность на высоком уровне. С другой стороны, если веб-приложение не проявляет никаких проблем в процессе работы, уменьшение количества перезапусков предотвратит потерю информации о состоянии.

Для проверки количества и частоты перезапусков пула приложения можно использовать счетчик производительности ASP.NET\Worker Process Restarts. Если вы увидите слишком большое количество перезапусков без явной на то причины, попробуйте сопоставить полученные значения с потреблением памяти приложением и нагрузкой на процессор, потому что перезапуски могут быть обусловлены превышением других пределов, определяемых настройками пула приложения.

Тайм-аут простоя

По умолчанию пул приложения прекращает работу через 20 минут простоя. Если такие перерывы в работе ожидаемы, например, когда все пользователи уходят на обед, попробуйте увеличить тайм-аут или даже вообще отменить его.

Привязка процессов к ядрам процессора

По умолчанию пул приложения настроен так, что может использовать все доступные ядра процессора. Если у вас имеется какой-либо специализированный фоновый процесс, использующий все процессорное время, какое ему будет выделено, можете настроить привязку пула к определенным ядрам, освободив остальные для фонового процесса. Разумеется, при этом также потребуется настроить привязку фонового процесса к другим ядрам процессора, чтобы избежать конкуренции между ним и рабочим процессом за одни и те же ядра.

Веб-сад

По умолчанию пул приложения запускает один рабочий процесс, обслуживающий все запросы, поступающие приложению. Если рабочему процессу приходится одновременно обрабатывать несколько запросов, конкурирующих за обладание одним и тем же ресурсом, это может привести к задержкам при подготовке ответов.

Например, если приложение использует патентованный механизм кеширования с блокировками, препятствующими одновременному добавлению элементов в кеш, при обработке запросов потребуется синхронизировать операции с ними, что приведет к задержкам, которые непросто будет выявить и устранить. Иногда можно исправить код, чтобы уменьшить использование блокировок, но такая возможность существует не всегда. Другой способ устранения конкуренции за ресурсы — запустить несколько рабочих процессов, выполняющих одно и то же приложение, каждый из которых обрабатывает собственное подмножество запросов, устраняя тем самым ненужную конкуренцию.

Другим примером, когда может пригодиться наличие нескольких процессов, выполняющих одно и то же веб-приложение — использование 64-разрядного сервера IIS, выполняющего 32-разрядное веб-приложение. 64-разрядные серверы обычно имеют большой объем памяти, а 32-разрядное приложение может использовать не более 2 Гбайт, что часто приводит к увеличению частоты сборки мусора и, вероятно, к перезапускам пула приложения. Поддерживая два или три рабочих процесса для 32-разрядного веб-приложения, можно добиться более полного использования памяти сервера, уменьшить частоту сборки мусора и перезапусков пула приложения.

В настройках IIS пула приложения можно определить максимальное количество рабочих процессов, которое можно запустить для обслуживания запросов. Если установить этот параметр в значение больше 1 (значение по умолчанию), с ростом нагрузки на веб-приложение для него будут запускаться дополнительные рабочие процессы, вплоть до указанного максимума. Пул приложения, имеющий более одного процесса, называется «веб-садом» («Web Garden»). Каждый раз, когда устанавливается соединение с клиентом, оно связывается с рабочим процессом, который будет обслуживать запросы от этого клиента, при этом соблюдается равномерное распределение запросов от пользователей между процессами и уменьшаются накладные расходы на конкуренцию.

Имейте в виду, что использование веб-сада имеет и недостатки. Большее количество рабочих процессов занимает больший объем памяти, исключается возможность использовать механизм по умолчанию хранения информации о сеансе в памяти процесса, при выполнении нескольких рабочих на одном компьютере, между ними может возникать конкуренция за локальные ресурсы, например, за использование общего файла журнала.

IIS 7.0 — The FastCGI process exceeded configured request timeout

Привет, сегодня будем лечить ошибку:

HTTP Error 500.0 — Internal Server Error
C:\Program Files (x86)\PHP\php-cgi.exe — The FastCGI process exceeded configured request timeout

Пути к php-cgi.exe могут отличаться в каждом конкретном случае. Ошибка происходит при превышении таймаута работы скрипта. По умолчанию таймаут FastCGI — 90 секунд.

Окружение

Для того, чтобы у вас браузер показал эту ошибку нужны некоторые условия:

  • Веб-сервер IIS 7.0
  • Настроенный на веб сервере PHP через FastCGI
  • Браузер открытый локально на сервере, иначе покажется просто ошибка 500. Открывать ошибки наружу — плохой тон.
  • И попытка выполнить долгий php-скрипт, который отлетит по таймауту.

Зачем увеличивать таймаут

Я не знаю зачем вам увеличивать таймаут. Я бы и себе не стал этого делать, долгое выполнение скрипта — прямая дорога к его оптимизации. Но всегда есть какая-нибудь причина, которая нас заставит это сделать.

В моём случае причиной выступил спамер, накидавший в мой phpbb форум 10000 сообщений. При попытке удалить засранца, я получил 500 в бубен. В таком случае всегда можно почистить базу данных напрямую, но это не наш метод.

Забегая вперёд скажу, что проблема была не в 10000 топиках, а в разросшихся поисковых индексах. Достаточно было удалить индексы и. тогда этой статьи бы не было. Кстати, индексы в phpbb удаляются здесь: Обслуживание — База данных — Поисковые индексы.

Таймуаты-таймауты

Сначала идём в php.ini файл и выполняем настройки:

Т.е. увеличиваем нужные нам таймауты до 600 секунд. Если вы используете не MySQL, то поправьте таймаут к соединению с вашим типом БД. Добавляем также памяти, т.к. в логе ошибок PHP встретилась неприятность:

[11-Feb-2020 22:43:58 Europe/Moscow] PHP Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 24 bytes) in ***путь***\phpbb\cache\driver\base.php on line 118

Она не относится к нашей проблеме, но тоже мешает выполнить большой php-скрипт и грохнуть спамера со всеми его опусами.

Теперь перезапускаем IIS и пробуем снова выполнить проблемный php-скрипт — и ничего не получается, потому что не все таймауты мы поправили. Идём дальше.

Запускаем оснастку IIS 7.0, выбираем наш сайт и нажимаем Advanced Settings.

Находим раздел Connection Limits, в нём Connection Time-out (seconds) и тоже меняем на 600 секунд.

Теперь перезапускаем IIS и пробуем снова выполнить проблемный php-скрипт — и снова ничего не получается, потому что не все таймауты мы поправили. Идём дальше.

Ищем в интернете AdminPack для IIS 7.0, скачиваем и устанавливаем на сервер. Перезагрузка не потребуется.

После установки пака в оснастке IIS появится новая иконка FastCGI Settings.

Заходим внутрь и видим наше PHP FastCGI приложение.

Выделяем его мышкой и нажимаем справа Edit.

И наконец-то видим искомые настройки:

Теперь перезапускаем iis в третий раз и пробуем снова выполнить проблемный php-скрипт — отлично, скрипт работает уже дольше 90 секунд! Даже более того, он проработает 600 секунд, согласно нашим настройкам. И если вам это поможет решить свою проблему — ура!

Мне не помогло. У меня сдохла таблица поисковых индексов на третьей минуте работы скрипта. Но я хотя бы об этом узнал из нормальной информативной ошибки. После чего индексы были удалены и вот теперь скрипт удаления спамера отработал нормально и до конца без ошибок! Правда заняло это гораздо менее 90 секунд, так что таймауты можно было бы не увеличивать, если заранее знать корень зла.

IIS 7.0: краткая инструкция для системного администратора. Часть 1 – установка.

Как я и обещал в посте несколько дней назад, начинаю писать серию постов типа инструкций шаг за шагом «как это установить и настроить» для тех админов, у которых действительно мало времени «на найти и разобраться», да еще если все это на английском языке. Кстати, кому таки не лениво – вот здесь очень хорошая подборка англоязычных документов под общим названием «Windows Server 2008 Step-by-Step Guides» — очень полезно в работе. Надеюсь, найдутся время и ресурсы, чтобы их тоже «отфильтровать» и сделать на их базе русские версии.

Если вам не интересны мои мысли «почему я пишу про IIS 7.0», можете смело пропустить пару абзацев.

В ближайший месяц я буду писать о веб-платформе от Microsoft, и в основном это будет касаться администрирования Internet Information Services 7.0 (IIS 7.0), входящего в состав Windows Server 2008. Это не значит, что я не буду писать ни о чем другом – конечно буду, у меня масса планов и тем с барселонского TechEd IT Forum 2008, в основном по направлению Windows Server 2008 R2, просто про администрирование IIS7 буду писать в этот месяц намного чаще и более последовательно, чем я это делал ранее. Поэтому даже те, для кого тема IIS7 не интересна, смогут как минимум раз в неделю находить у меня на блоге что-то интересное по другим тематикам.

Почему именно IIS 7.0? Здесь несколько причин. Во-первых, в уже упомянутом сборнике документов «шаг за шагом» «Windows Server 2008 Step-by-Step Guides» по странному стечению обстоятельств документа по IIS 7.0 почему-то нет. Во-вторых, как показывает опыт семинаров TechNet в Украине – знания, и даже можно сказать – представления многих админов о технологиях Microsoft для веб базируются на «сказках-страшилках» конца прошлого века, и хотелось бы показать всем желающим простой путь попробовать все технологии самостоятельно, без каких-то предрассудков и прочих ОБС. В-третьих – мне самому, человеку, который достаточно долгий период своей жизни занимался вебом вообще и IIS в частности – а я помню и IIS 2.0, и 3.0, и 4.0 и, конечно же, 5.0 – эта тема близка и интересна, и могу сказать, что за 10 лет в этом направлении Microsoft сделал существенные, даже можно сказать – эпохальные шаги вперед. Потому хотелось бы поделиться и опытом, и знаниями в этой прогрессирующей области с коллегами. В-четвертых – небольшой сюрприз в рамках проводимой в Украине акции для тех, кто разворачивает и управляет веб-серверами под управлением продуктов Microsoft – украинский офис Microsoft проводит акцию, по которой вы можете получить лицензионный Windows Server 2008 Web Edition (коробочная версия) бесплатно для хостинга ваших проектов и сайтов в Интернете. Так что торопитесь получить такой легальный продукт – пишите через блог на почту. И, наконец, в-пятых – в Киеве проводится полигон по веб-технологиям Microsoft, в том числе и IIS 7.0, так что мои статьи послужат хорошим фоном для такого мероприятия.

Ну, вроде это вcе наиболее веские причины писать в ближайший месяц о IIS 7.0. Кроме одной – зачем вообще админу знание IIS 7.0, который, в принципе, больше является платформой для разработчиков, на которой они делают свои веб-проекты? Проблема в том, что, как показывает опыт, разработчики не очень «напрягаются» созданием архитектуры и проработкой деталей веб-проекта, таких, как безопасность, администрирование, масштабирование и т.п. будущего работаеющего решения. И все это становится головной болью админа. Другая головная боль – это работодатели, которые часто под словом «компьютерщик» понимают, что человек может и спаять сгоревшую плату, и сетку настроить, и программку бухгалтерскую написать. И конечно же – веб сайт родной фирмы «Рога и Ко» сделать – как же без него. А то, что в ИТ отрасли есть глубокая специализация – никого не волнует. И вот потом и пишет мне в Live Messenger такой админ – «Игорь, а что делать?! За что хвататься?!», или если такого «Игоря», который бы подсказал, нет рядом – начинается такое.

Вроде, мотивы мои всем понятны. получилось довольно длинно, обещаю, сами технические части будут куда короче. Итак.

Часть 1. Установка IIS 7.0

Первый вопрос, который мне задают – что такое веб сервер под Windows, что нужно установить? Ответ – вебсервер под Windows – это служба IIS 7.0. Следующий вопрос – где взять IIS 7.0, откуда скачать? Ответ очень простой – IIS 7.0 (как и предыдущие версии, начиная с IIS 5.0) интегрирован в саму серверную ОС Microsoft Windows Server 2008 (а предыдущие версии IIS – соответственно в Windows Server 2003 и Windows 2000) и устанавливается как роль Windows Server. Тогда более тривиальный вопрос – где взять «настоящий» Windows Server 2008? Пробную версию Windows Server 2008 для всех экспериментов и тестирования рекомендую брать только с сайта Microsoft http://www.microsoft.com/windowsserver2008 — проверенная и гарантированно правильная версия (только не забудьте установить все обновления). Серийный номер для Windows Server 2008 не требуется – вы просто при установке в мастере установки оставляете его пустым и на вопрос, хотите ли вы все же его заполнить – гордо отвечаете НЕТ. Фактически, если вы при установке или в ходе эксплуатации таки введете настоящий продуктовый номер – вы получите «настоящую» версию. Версия без введенного серийного номера работает 60 дней, после чего требует активации. Мало кто любит читать иструкции при загрузке файлов, особенно те, которые написаны мелким шрифтом – на самом деле, на странице загрузке есть ссылка на инструкцию, какой скрипт надо запустить, чтобы сбросить счетчик активации Windows снова на 60 дней. Такую операцию надо не забыть сделать до истечения 60дневного срока (например, на 59й день эксплуатации). Всего вы можете посторить операцию сброса счетчика 3 раза – т.е. пробную версию можно эксплуатировать 240 дней, что вполне достаточно с тем, чтобы распробовать плюсы и минусы системы. Ну а для желающих уже сейчас эксплуатировать лицензионный Windows Server 2008 для своих веб-проектов – напоминаю про акцию, пишите.

Теперь о выборе редакции, которых доступно аж 4 – Datacenter, Enterprise, Standard, Web Edition. Пожалуйста, подходите более ответственно к их выбору. Зачем, ну зачем использовать Enterprise для запуска веб-сайтов – «шоб було?». Для таких задач есть оптимизированная редакция Web Edition. Сравнение возможностей разных редакций можно найти там же, на официальном сайте http://www.microsoft.com/windowsserver2008. Кроме того, некоторые соображения по использованию лицензионных соглашений и виртуализации в разных редакциях я написал на этом блоге ранее.

После установки экземпляра Windows Server 2008 и его конфигурации (если это также вызывает затруднения – смотрим видео с семинара по Windows Server 2008) переходим непосредственно к установке IIS 7.0. Что нового в IIS 7.0, какие модули включены в него и т.д. – я рассматривать не буду, все теоретические выкладки можно найти в электронной версии журнала TechNet Magazine, которая выходит в том числе и на русском. IIS 7.0 были посвящены 2 статьи в мартовском и июльском номерах журнала. Рекомендую ознакомиться с ними перед практическим применение – знание теории, пусть даже в сжатой форме весьма полезно.

Основным нововведением в направлении установки различных компонент и служб в Windows Server 2008 является понятие «роли». Роль представляет из себя набор всех необходимых компонент, настроек системы, безопасности и т.п., которые необходимы для выполнения определенной задачи. Кроме того, имеется также информация о взаимодействии ролей между собой – одна роль может работать как подмножество другой и, наоборот – роли могут конфликтовать между собой – об этом администратор будет уведомлен при установке такой роли поверх уже существующих. Установку и конфигурацию всего необходимого система выполняет автоматически при выборе конкретной роли. Такой подход гарантирует, что даже в случае ошибки администратора, связанной с установкой той или иной роли, не требуемой в текущий момент – система будет функционировать нормально и это не затронет работоспособность других ролей. Как впрочем, это также существенно упрощает и сам подход к управлению системой Windows Server 2008 в целом.

Управление ролями осуществляется через стандартную оснастку управления Windows Server 2008 – Server Manager или в процессе начальной конфигурации сервера через Initial Configuration Tasks.

IIS 7.0 устанавливается как роль Windows Server 2008. Для этого требуется:

1. Запустить оснастку Server Manager из меню Start или из панели Quick Launch. Server Manager по умолчанию стартует автоматически при входе администратора в систему. Server Manager является основным инструментом управления сервером Windows Server 2008.

2. В оснастке на стартовой странице убедиться, что сервер сконфигурирован правильно. Желательно проверить наличие статического IP адреса. Если он не установлен, его можно поменять тут же, из консоли Server Manager, открыв в правой панели по линку «View Network Connections» сетевые интерфейсы.

3. Выбираем в левой панели Server Manager пункт Roles, в правой панели видим список текущих ролей. В зависимости от редакции ОС и установленных ролей список может варьироваться. В данном примере ни одна роль не установлена.

4. Для установки новой роли используем в правой панели в разделе «Roles Summary» линк «Add Roles».

5. Запускается мастер установки ролей «Add Roles Wizard», пропускаем первую страницу «Before You Begin» мастера, нажав кнопку «Next >»

6. На странице «Select Server Roles» в списке ролей выбираем роль «Web Server (IIS)». Список ролей может отличаться в зависимости от редакции. Данный список соответствует редакции Windows Server 2008 Enterprise Edition x64.

7. При выборе роли «Web Server (IIS)» мастер автоматически предлагает установить сервисы, которые требуются для функционирования веб сервера. Это службы активации процессов, фактически, они обеспечивают среду исполнения процессов, обслуживающих вебсайты. Соглашаемся с установкой данных служб путем нажатия кнопки «Add Required Features» и нажимаем кнопку «Next >» в мастере.

8. На странице «Select Role Services» отображается список всех доступных модулей (сервисов), входящих в состав IIS 7.0, представляющих 3 большие группы – Web, Management и FTP – и внутри сгруппированых по назначению – общие модули для поддержки HTTP Common HTTP Features, модули для исполнения сценариев и приложений Application Development, модули управления журналированием и диагностикой Health and Diagnostics, модули обеспечения безопасности Security, производительности Performance, модули управления и совместимости с предыдущей версией IIS 6.0 Management Tools, и, наконец, модули FTP. По умолчанию роль веб сервера IIS 7.0 устанавливается и конфигурируется в минимальном наборе из 9 модулей:

a. только для работы со статическим HTML контентом (модули из Common HTTP Features),

b. только с подключением анонимных пользователей и с фильтрацией вредоносных запросов (Security),

c. с базовыми модулями для журналирования запросов к вебсайтам на сервере и просмотра очереди запросов (Health and Diagnostics),

d. с модулем сжатия статического контента при передаче страниц клиенту HTTP (Performance),

e. и консоли администрирования в режиме локального подключения к веб серверу IIS Management Console.

9. На этом шаге можно добавить дополнительные модули в конфигурацию согласно задачам будущих вебсайтов, которые будут работать на данном вебсервере. Не рекомендуется «просто так» добавлять модули, особенно, если вы не знаете их назначение. Краткое описание каждого модуля можно найти прямо на странице (в правом верхнем углу), которое отображается, когда вы выбираете модуль в списке. Не стоит торопиться (или, наоборот, переставлять всю систему, если установили лишнее) – вы всегда можете доустановить модули к уже установленной роли, или удалить уже установленные модули. Функции, выполняемые наиболее важными модулями, а также их настройку, мы рассмотрим отдельно.

10. При отметке отдельного модуля для добавления, также, как и при выборе роли, мастер автоматически проводит проверку всех связей и зависимостей и предлагает установить дополнительные модули, без которых функционирование выбраного невозможно. В данном примере для установки выбран модуль ASP.NET и мастер автоматически запрашивает разрешение на установку других модулей и служб, необходимых для его работы. Соглашаемся с установкой данных служб и модулей путем нажатия кнопки «Add Required Role Services». По окончанию выбора всех модулей нажимаем кнопку «Next >» в мастере.

11. На странице «Confirm Installation Selection» отображается для подтверждения информация о всех выбранных модулях, которые будут установлены. Также отображаются служебные и информационные сообщения рекомендательного характера. Например, рекомендация после установки роли IIS 7.0 выполнить обновления ОС или установить Windows System Resource Manager (WSRM), который позволяет обеспечить распределение ресурсов системы при выполнении веб-приложений. Нажатие кнопки «Next >» на этой странице устанавливает весь указанный перечень модулей.

12. По окончании процесса установки мастер отображает станицу с результатами установки, на которой, в зависимости от предыдущих настроек системы и выбранных модулей, может потребоваться перезагрузка сервера.

13. После закрытия окна мастера установки роли в левой панели консоли Server Manager в разделе «Roles» среди других ролей появляется подраздел «Web Server (IIS)». В правой панели отображается информация о состоянии всех установленных ролей.

14. Выбираем подраздел «Web Server (IIS)» в левой панели Server Manager, в правой панели отображается информация о работе роли веб сервера. Здесь представлены:

a. Events: агрегированный список записей из всех журналов событий ОС за последние 24 часа, имеющих отношение к работе веб служб,

b. System Services: список всех системных сервисов, обеспечивающих функционирование данной роли и с возможностями по управлению ими и мониторингу их состояний,

c. Role Services: в данном случае – список всех модулей IIS 7.0 с указанием установлен данный модуль или нет и с возможностями старта мастера установки/удаления модулей данной роли (о котором мы говорили выше),

d. Resources and Support: наиболее интересный раздел информации о каждой роли, который содержит в себе базу знаний с рекомендациями по дополнительной более тонкой настройке той или иной роли для отдельных сценариев использования. Рекомендуется к широкому использованию.

Таким образом, если в п.14 вы видите, что ваша роль работает без ошибок в журналах, все требуемые сервисы работаю (не отображается информация о их аварийной остановке), все необходимые для ваших задач модули отображаются в списке как установленные – первый шаг к использованию веб сервера под управлением IIS 7.0 вы сделали – вы его установили.

How to increase request timeout in IIS?

How to increase request timeout in IIS 7.0? The same is done under application tab in ASP configuration settngs in IIS 6.0. I am not able to find the asp.net configuration section in IIS 7.0

7 Answers 7

Add this to your Web Config

Specifies the maximum number of seconds that a request is allowed to execute before being automatically shut down by ASP.NET.

This time-out applies only if the debug attribute in the compilation element is False. To help to prevent shutting down the application while you are debugging, do not set this time-out to a large value.

The default is «00:01:50» (110 seconds).

In IIS Manager, right click on the site and go to Manage Web Site -> Advanced Settings. Under Connection Limits option, you should see Connection Time-out.

To Increase request time out add this to web.config

and for a specific page add this

The default is 90 seconds for .NET 1.x.

The default 110 seconds for .NET 2.0 and later.

In IIS >= 7, a section has replaced ConnectionTimeout , HeaderWaitTimeout , MaxGlobalBandwidth , and MinFileBytesPerSec IIS 6 metabase settings.

For reference: more information regarding these settings in IIS can be found here. Also, I was unable to add this section to the web.config via the IIS manager’s «configuration editor», though it did show up once I added it and searched the configuration.

Below are provided steps to fix your issue.

  1. Open your IIS
  2. Go to «Sites» option.
  3. Mouse right click.
  4. Then open property «Manage Web Site«.
  5. Then click on «Advance Settings«.
  6. Expand section «Connection Limits«, here you can set your «connection time out«

I know the question was about ASP but maybe somebody will find this answer helpful.

If you have a server behind the IIS 7.5 (e.g. Tomcat). In my case I have a server farm with Tomcat server configured. In such case you can change the timeout using the IIS Manager:

  • go to Server Farms ->->Proxy
  • change the value in the Time-out entry box
  • click Apply (top-right corner)

or you can change it in the cofig file:

  • open %WinDir%\System32\Inetsrv\Config\applicationHost.config
  • adjust the server webFarm configuration to be similar to the following

The $ is in HH:mm:ss format (so if you want to set it to 90 seconds then put there 00:01:30)

Работа с консолью IIS

Работа с консолью IIS.

Сначала ознакомьтесь с оснасткой IIS Microsoft Management Console (MMC). Откройте IIS MMC посредством выбора команды Start\Administrative Tools\Internet Information Services (IIS) Manager. В MMC осуществляется настройка всех установленных компонентов IIS. Для настройки веб-сайтов служит папка Web Sites (Веб-узлы) в левой области консоли. При открытии этой папки в левой части окна отображается список всех веб-сайтов данного сервера, а в правой – основная информация о каждом из них (см. рис. 2.1).

увеличить изображение
Рис. 2.1. Веб-узлы в консоли IIS MMCКаталоги веб-сайтов

Щелкнув на имени веб-сайта в левой части окна MMC, вы увидите, как справа появится список всех его файлов и каталогов. С консолью MMC работают так же, как и с Internet Explorer. Она позволяет получить доступ к разрешениям NTFS для каталогов, однако не дает возможность настройки разрешений NTFS для файлов. С ее помощью можно выяснить, какие файлы доступны в сконфигурированных каталогах.Идентификатор веб-сайта

Первым сайтом в списке является Default Web Site (Веб-сайт по умолчанию). С каждым сайтом ассоциируется случайным образом сгенерированный идентификатор. Идентификатором сайта Default Web Site всегда является 1. Этот идентификатор используется в файле конфигурации метабазы для ссылки на данный сайт, с ним работают все интерфейсы программирования (например, WMI или ADSI).

Управление службами веб-сайта

Используемая веб-сайтами служба Windows называется World Wide Web Publishing Service. Она осуществляет управление веб-сайтами, и при ее остановке все веб-узлы будут отключены. Консоль MMC позволяет останавливать, запускать и приостанавливать работу отдельных веб-сайтов.

Для запуска, остановки или приостановки работы сайта щелкните на имени сайта, затем с помощью кнопок на панели инструментов выберите нужное действие. Эти кнопки похожи на кнопки воспроизведения, остановки и паузы на пульте управления видеомагнитофоном или DVD-проигрывателем. Столбец State (Состояние) в правой части консоли MMC отображает текущее состояние сайта – работа, остановка или приостановка.

  • Running. Веб-сайт в данный момент работает.
  • Stopped. Веб-сайт не обслуживает клиентов и не отвечает на их запросы.
  • Paused. Веб-сайт не отвечает на новые запросы. Процессы, запущенные перед приостановкой веб-сайта, выполняются, после чего завершают свою работу. Используется, если нужно остановить веб-сайт без внезапного отключения клиентов.

Адресация сайтов

Каждому работающему сайту нужно присвоить однозначный, связанный только с ним адрес. Доступны три способа адресации, и один из трех адресов должен быть уникальным. Выберите такой адрес из следующего списка:

  • значение заголовка узла;
  • IP-адрес;
  • номер порта (не SSL-порт; он в расчет не принимается).

Сведения о настройке этих параметров приведены в разделе «Настройка адреса для веб-сайта» далее в лекции. При запуске веб-сайта, не имеющего уникального адреса, отобразится сообщение об ошибке.

Создание виртуальных каталогов

В дополнение к физическим каталогам в MMC конфигурируются и виртуальные каталоги. Виртуальный каталог позволяет перенаправить клиента в другой каталог, адрес URL или место расположения на другом компьютере, и при этом выглядит как простой каталог.

Создание виртуального каталога является несложной процедурой.

  1. Откройте консоль IIS MMC с помощью команды Start\Administrative Tools\Interet Information Services (IIS) Manager (Пуск\Администрирование\Диспетчер IIS).
  2. В левой части окна IIS MMC выделите веб-сайт или каталог, в котором будет создаваться виртуальный каталог.
  3. Выберите команду Action\New\Virtual Directory (Действие\Создать\Виртуальный каталог).
  4. Откроется окно Virtual Directory Creation Wizard (Мастер виртуальных каталогов). Нажмите на кнопку Next (Далее).
  5. В диалоговом окне Virtual Directory Alias (Псевдоним виртуального каталога) ведите псевдоним – имя виртуального каталога, которое будет отображаться клиентам при их работе с каталогом. Нажмите на кнопку Next (Далее).
  6. В диалоговом окне Web Site Content Directory (Каталог содержимого веб-сайта) введите путь к содержимому сайта либо перейдите к нужному каталогу. При перенаправлении на URL выберите любой путь, который в случае необходимости измените позже. Нажмите на кнопку Next (Далее).
  7. В диалоговом окне Virtual Directory Access Permissions (Разрешения доступа к виртуальному каталогу) выберите необходимый уровень разрешений: Read (Чтение), Run Scripts (Выполнение сценариев), Execute (Выполнение), Write (Запись) и Browse (Обзор). Нажмите на кнопку Next (Далее).
  8. Нажмите на кнопку Finish (Готово) для завершения работы мастера.

Сохранение конфигурации веб-сайта в файле

После настройки веб-сайта сохраните ее в файле метабазы XML конфигурации сайта. На базе сохраненной конфигурации вы сможете создавать аналогичные сайты на других серверах без перенастройки всех параметров. Также сохраните виртуальные каталоги, сайты FTP и пулы приложений.

  1. В консоли IIS MMC выделите сайт, который нужно сохранить.
  2. Выберите команду Action\All Tasks\Save Configuration To A File (Действие\Все задачи\Сохранить конфигурацию в файле).
  3. В диалоговом окне Save Configuration To A File (Сохранение конфигурации в файле) введите имя файла для сохранения настроек.
  4. Введите место расположения (или перейдите к существующему месту расположения с помощью кнопки Browse [Обзор]) для сохранения данной конфигурации.
  5. Укажите необходимость шифрования экспортного файла. Поскольку он является метабазой XML и содержит информацию, доступ к которой других пользователей нежелателен, рекомендуется установить шифрование.
  6. При использовании шифрования выберите пароль для защиты содержимого.
  7. Нажмите на кнопку OK.

Создание нового сайта

На сервере можно создать несколько сайтов, если каждый из них будет уникальным. Для создания нового сайта используйте Web Site Creation Wizard (Мастер создания веб-сайтов) или файл, сохраненный для другого веб-сайта.

Для создания нового сайта с помощью Web Site Creation Wizard (Мастер создания веб-сайтов) выполните следующие действия.

  1. Выделите Web Sites (Веб-узлы) в левой части панели MMC.
  2. Выберите команду Action\New\Web Site (Действие\Создать\Веб-узел).
  3. В окне Web Site Creation Wizard (Мастер создания веб-сайтов) нажмите на кнопку Next (Далее).
  4. Введите описание сайта – дружественное информативное имя, несущее определенную информацию, с помощью которого сайт легко идентифицируется в консоли MMC.
  5. Введите IP-адрес, порт TCP и (необязательно) Host Header Name (Имя заголовка узла). Значение All Unassigned настроит сайт на использование любого IP-адреса, не занятого другим сайтом. На порте протокола TCP может единовременно выполняться только один сайт (All Unassigned).
  6. Нажмите на кнопку Next (Далее).
  7. Введите имя каталога для нового сайта (или перейдите к нему).
  8. Укажите, следует ли разрешить анонимный доступ к сайту. Нажмите на кнопку Next (Далее).
  9. Выберите уровень разрешений для нового сайта: Read (Чтение), Run Scripts (Выполнение сценариев), Execute (Выполнение), Write (Запись) и Browse (Обзор).
  10. Нажмите на кнопку Next (Далее), затем на кнопку Finish (Готово) для завершения работы мастера.

При возникновении конфликта адресации с другим сайтом вы, конечно, сможете создать новый сайт, но запустить его будет нельзя.

Ниже приведены действия по созданию нового сайта с помощью файла.

  1. Выделите Web Sites (Веб-узлы) в левой части панели MMC.
  2. Выберите команду Action\New\Web Site (From File) (Действие\Создать\Веб-узел [из файла]).
  3. В диалоговом окне Import Configuration (Импорт конфигурации) введите имя файла или перейдите к нужному файлу конфигурации.
  4. Нажмите на кнопку Read File (Просмотр) для просмотра конфигурации, находящейся в файле. Ее описание появится в секции Location (Расположение) внизу окна.
  5. В секции Location выделите конфигурацию для импортирования, затем нажмите на кнопку OK.
  6. Если такой сайт уже существует, вам будет предложено либо создать новый сайт, либо заменить существующий.
  7. При создании нового сайта он получит то же самое имя и конфигурацию, но другой идентификатор.
  8. Нажмите на кнопку OK для завершения создания сайта и закрытия окна.

Доступ ко вкладкам конфигурации

Для получения доступа ко вкладкам свойств и настроек глобальных веб-сайтов, веб-сайтов, каталогов или файлов, отображаемых в левой части окна консоли MMC, щелкните правой кнопкой на объекте, затем выберите Properties (Свойства). В окне Properties расположены вкладки конфигурации для каждой иерархической ступени. Ниже приводится их описание. Начнем с уровня веб-сайта, так как здесь содержится больше всего вкладок, и он чаще всего используется.

Вкладки свойств веб-сайта

Для открытия окна Properties (Свойства) отдельного веб-сайта щелкните правой кнопкой мыши на его имени в левой части консоли MMC и выберите Properties. Рассмотрим вкладки с информацией, которые отображаются при доступе к свойствам сайта BeerBrewers (Пивовары).

Вкладка Web Site (Веб-узел)

При открытии окна Properties (Свойства) для любого веб-сайта по умолчанию отображается вкладка Web Site (Веб-узел) (см. рис. 2.2). В ней вводится адрес IP и информация о портах, а также настраивается время простоя соединения и ведение журнала. Во вкладке Web Site необходимо настроить следующие опции.

Рис. 2.2. Вкладка Web Site (Веб-узел)

Создание описания

Информация, введенная в поле Description (Описание), отображается в столбце Description консоли IIS MMC. В этом поле можно определить веб-сайт, указав информативное имя. Это имя скрыто от пользователей веб-сайта.

Настройка адреса для веб-сайта

Каждый веб-сайт должен иметь уникальный адрес для передачи ассоциированного с ним трафика. Выделить веб-сайт среди других можно тремя способами: посредством IP-адреса, TCP-порта и имени заголовка узла. С точки зрения адресации возможно использование любой комбинации этих данных, но хотя бы одна комбинация должна быть уникальной для компьютера, на котором располагается сайт.

IP-адрес (IP-адрес). Позволяет установить главный IP-адрес для веб-сайта. Выберите IP-адрес в ниспадающем меню либо введите его вручную. Выбор варианта (All Unassigned) позволяет настроить веб-сайт на соответствие любому IP-адресу компьютера, не занятому другим веб-сайтом.

Совет. При вводе IP-адреса вручную проверка наличия такого IP-адреса в системе не выполняется. Вы можете ввести произвольный адрес. Проверяется лишь его правильность и тот факт, что он не используется другим веб-сайтом. Помните о том, что возможно возникновение проблем с соединением, если по этому IP-адресу компьютер будет недоступен.

Порт TCP (Порт TCP). Указывается номер порта, на котором сайт будет ожидать приема данных. Задайте любой порт, не используемый другой службой. Если вы укажете уже занятый порт, IIS не посчитает это ошибкой. Однако в дальнейшем вероятно возникновение проблем в работе использующей порт службы.

Например, для веб-сайта указан порт 25, в результате чего возник конфликт со службой Simple Mail Transfer Protocol (SMTP), работающей на том же компьютере и использующей тот же порт. При поступлении к порту 25 данных компьютер не будет знать, какой службе они предназначаются. В большинстве случаев, поскольку служба SMTP устанавливается раньше, веб-запрос отправится к ней и, следовательно, не будет обработан. При выборе номера порта, отличающегося от 80, необходимо убедиться, что он не используется другой службой.

По умолчанию веб-браузер всегда ожидает поступление данных по порту 80, если в поле адреса не указан другой порт. При изменении номера порта клиенты должны добавлять к адресу URL номер порта, чтобы браузер отправлял запросы к веб-серверу по этому порту. Например, при изменении порта ожидания данных на 1500 клиенты должны указать адрес http://www.beerbrewers.com:1500 вместо обычного http://www.beerbrewers.com.

Порт SSL (Порт SSL). Указывается порт, по которому к веб-сайту поступают данные Secure Sockets Layer (Протокол защищенных сокетов). SSL позволяет шифровать и/или аутентифицировать данные при их передаче между клиентом и сервером (см. лекцию 10).

Как и в предыдущем случае, при изменении стандартного номера 443 этого порта клиенты должны добавлять номер порта к адресу URL для открытия веб-сайта. Например, при изменении номера порта на 1543 клиенты для доступа к сайту должны указать адрес https://www.beerbrewers.com:1543 вместо https://www.beerbrewers.com.

Аdvanced (Дополнительно)

При нажатии на кнопку Advanced (Дополнительно) открывается окно Advanced Web Site Configuration (Дополнительная настройка веб-сайта), в котором настраиваются дополнительные адреса и идентификаторы. Дополнительные идентификаторы позволяют пользователям осуществлять доступ к сайту по нескольким адресам. Такой подход применяется, если нужно направить пользователей, вводящих URL одного сайта, на другой сайт этого же компьютера без использования DNS (Системы доменных имен). (Более подробная информация приведена в лекции 8). В окне Advanced Web Site Configuration указываются имена заголовков узла, чтобы нескольких веб-сайтов могли использовать один и тот же IP-адрес и порт.

О заголовках узлов. Заголовки узлов позволяют отделять один адрес веб-сайта от другого. Обычно они служат для настройки разных веб-сайтов на использование одного и того же IP-адреса и порта. Заголовок узла представляет собой полное имя DNS, вводимое в адресной строке браузера для открытия сайта. Заголовки узлов позволяют экономить адресное пространство при наличии одного доступного IP-адреса. При запросе страницы веб-браузером HTTP 1.1 первая часть запроса выглядит следующим образом.

Часть кода после Host является именем заголовка узла – www.mywebsite.com. IIS использует его для отправки сообщения соответствующему веб-сайту.

Имена заголовков узлов впервые появились в протоколе HTTP 1.1, и все браузеры, совместимые с HTTP 1.1, работают с ними. Более старые версии браузеров не передают заголовок узла и для любого IP-адреса всегда выполняют переход к веб-сайту по умолчанию.

Совет. Для поддержки старых версий браузеров можно создать стандартную страницу для IP-адреса со списком веб-сайтов и использовать элементы cookie для направления на эти сайты клиентов. Версии Internet Explorer, начиная с четвертой, и версии Netscape, начиная с 3, поддерживает заголовки узлов, поэтому не будем заострять внимание на этом вопросе. Более полная информация о поддержке старых версий браузеров находится на сайте Microsoft.

Примечание. Имена заголовков узлов являются частью протокола HTTP 1.1, поэтому их нельзя использовать на сайтах FTP, почтовых и новостных сайтах в IIS. При создании несколько сайтов на одном сервере следует получить несколько IP-адресов или использовать различные порты. Заголовки узлов недоступны и в случае работы с протоколом защищенных сокетов (SSL), так как заголовок находится в зашифрованном запросе.

Добавление дополнительного тождественного идентификатора. Одному и тому же веб-сайту можно присвоить несколько адресов. Сайт будет отвечать на запросы, поступающие по каждому отдельному адресу и по всем сразу. Каждый адрес, ассоциированный с веб-сайтом, называется тождественным идентификатором. Для создания дополнительного тождественного идентификатора веб-сайта нажмите на кнопку Add (Добавить) в секции Web Site Identification (Идентификация веб-сайта) во вкладке Web Site (Веб-узел). Откроется диалоговое окно Advanced Web Site Identification (Дополнительная идентификация веб-узла) (см. рис. 2.3).

Рис. 2.3. Диалоговое окно Advanced Web Site Identification (Дополнительная идентификация веб-узла)

Каждый тождественный идентификатор должен быть уникальным и использовать один из трех адресов (IP-адрес, порт TCP или значение заголовка узла). Введите любой правильный IP-адрес, порт или имя заголовка узла. Как и в случае с полем IP Address вкладки Web Site (Веб-узел), система не проверяет наличие этого адреса на компьютере, поэтому вводите любой разрешенный адрес. Не забывайте, что будет мало пользы, если в дальнейшем ваш сайт нельзя будет отыскать по указанному адресу.

Удаление тождественных идентификаторов. Для удаления тождественного идентификатора выделите его и нажмите на кнопку Remove (Удалить). Все тождественные идентификаторы сайта в этом окне удалить нельзя, поэтому кнопка OK будет недоступна.

Редактирование тождественных идентификаторов. Для изменения тождественного идентификатора выделите его и нажмите на кнопку Edit (Изменить).

Присвоение тождественных идентификаторов SSL. Веб-сайту можно присвоить несколько тождественных SSL-идентификаторов. Поскольку в SSL отсутствуют заголовки узлов, изменяется только IP-адрес и номер порта. При отсутствии на сайте установленного сертификата все опции для тождественных SSL-идентификаторов будут отключены.

Добавление тождественных SSL-идентификаторов. Для добавления дополнительного идентификатора SSL веб-сайту нажмите на кнопку Add (Добавить). Можно добавить несколько идентификаторов; просто помните о том, что сертификаты SSL базируются на имени сайта, а не на IP-адресе. Любой указываемый IP-адрес должен обрабатываться через имя DNS. При попытке доступа через IP-адрес сайт будет недоступен.

Удаление тождественных SSL-идентификаторов. Для удаления тождественного идентификатора SSL с веб-сайта выделите его и нажмите на кнопку Remove (Удалить). Нельзя удалить все тождественные SSL-идентификаторы.

Изменение тождественных SSL-идентификаторов. Для изменения тождественного идентификатора SSL веб-сайта выделите его и нажмите на кнопку Edit (Изменить).

Лимит времени соединения

Параметр Connection Timeout (Лимит времени соединения) во вкладке Web Site (Веб-узел) задает промежуток времени в секундах, в течение которого сервер поддерживает для клиента открытое соединение. Как правило, браузер отправляет на сервер запрос, чтобы оставить соединение открытым. Данный процесс называется поддержкой соединения НTTP (keep-alive). Клиент использует открытое соединение для нескольких запросов, причем ни клиенту, ни серверу не нужно повторно устанавливать соединение для каждого запроса. Это сильно повышает производительность, особенно для низкоскоростных соединений. При завершении работы с запросами клиент сообщает серверу о том, что соединение можно закрыть и освободить занимаемые ресурсы.

Предположим, по какой-то причине клиент не закрыл соединение. Оно останется открытым бесконечно долго, если не сообщить серверу о необходимости его закрытия. Значение Connection Timeout (Лимит времени соединения) предназначено как раз для установки этого интервала времени.

Включение функции поддержки соединения HTTP

Опция Enable HTTP Keep-Alives (Включить поддержку соединения HTTP) включена по умолчанию, что позволяет серверу принимать запросы HTTP keep-alive от клиентов. При отключении опции резко снижается производительность и клиента, и сервера.

Включение журнала

По умолчанию на веб-сайтах включено ведение журналов. Стандартным типом журнала является W3C Extended Log File (Расширенный файл журнала W3C). В окне можно отключить ведение журнала или изменить его тип. О ведении журналов подробно рассказывается в лекции 11.

Вкладка Performance (Производительность)

Во вкладке Performance (Производительность) окна Web Site Properties (Свойства веб-узла) (см. рис. 2.4) настраивается управление полосой пропускания и количество подключений сайта.

Рис. 2.4. Вкладка Performance (Производительность)

Управление полосой пропускания

С помощью параметра Bandwidth Throttling (Управление полосой пропускания) настраивается максимальная пропускная способность канала связи (Кб/с). Для настройки параметра требуется программа Windows Packet Scheduler (приложение QOS – Quality Of Service), определяющая возможность отправки пакета по сети. Программа ставит данные в очередь и отправляет по сети с указанной скоростью. IIS автоматически инсталлирует Windows Packet Scheduler после задания максимального значения полосы пропускания и нажатия на кнопку OK.

При настройке данного параметра помните, что пропускная способность канала связи локальной сети имеет значения 10, 100 или 1000 Мб/с, а скорость работы в сети интернет, как правило, намного ниже. Например, полный канал T1 обеспечивает скорость 1,544 Мб/с. Если принятое значение по умолчанию равно 1024 Кб, то оно будет намного больше скорости канала T1.

Примечание. 1 байт равен 8 битам. 1 Килобайт равен 8192 битам.
Подключения веб-сайта

Переключатели Web Site Connections (Подключения веб-сайта) позволяют настроить количество подключений клиентов для данного сайта. Значение по умолчанию – Unlimited (Не ограничено). При выборе Connections Limited To (Ограничить число подключений) укажите любое количество подключений – от 0 до 2 000 000 000.

Вкладка ISAPI Filters (фильтры ISAPI)

Во вкладке ISAPI Filters (Фильтры ISAPI) (см. рис. 2.5) можно добавить фильтры ISAPI для сайта. Весь трафик HTTP, направляемый к сайту, будет передаваться фильтрам ISAPI в установленном здесь порядке. Расширение ISAPI применимо только к тому расширению, с которым оно связано, а фильтр ISAPI применим ко всему трафику сайта. Это может вызвать значительный спад производительности сайта, особенно при неправильном написании фильтра ISAPI, допускающем потерю ресурсов памяти. (Более подробная информация о технологии ISAPI приведена в лекции 5 курса «Программирование в IIS».)

Рис. 2.5. Вкладка ISAPI Filters (Фильтры ISAPI)

Фильтр ISAPI имеет определенное состояние. Направленная вниз красная стрелка означает, что фильтр в данный момент отключен. Направленная вверх зеленая стрелка означает, что фильтр включен.

Добавление фильтра ISAPI

Для добавления фильтра ISAPI нажмите на кнопку Add (Добавить), присвойте фильтру имя, а затем выберите исполняемый файл, с помощью которого будет производитьсяфильтрация трафика. Имя фильтра должно быть дружественным, удобным для использования.

Удаление фильтра ISAPI

Для удаления фильтра ISAPI выделите фильтр и нажмите на кнопку Remove (Удалить).

Изменение фильтра ISAPI

Для изменения фильтра ISAPI выделите фильтр и нажмите на кнопку Edit (Изменить). Имейте в виду, что можно только редактировать исполняемый файл, на который указывает фильтр. Имя фильтра изменять нельзя.

Включение и выключение фильтра ISAPI

Если фильтр в настоящий момент является активным, его можно отключить, выделив имя фильтра и нажав на кнопку Disable (Отключить). Если фильтр в настоящий момент отключен, его можно включить, выделив имя фильтра и нажав на кнопку Enable (Включить). Отключение фильтра позволяет приостановить его работу без удаления из списка фильтров.

Изменение порядка выполнения

При использовании нескольких фильтров ISAPI, как правило, они выполняются в определенном порядке. Этот порядок задается в данном окне. Для повышения приоритета фильтра в списке выделите его имя и нажмите на кнопку Move Up (Вверх). Для понижения приоритета фильтра в списке выделите его имя и нажмите на кнопку Move Down (Вниз).

Вкладка Home Directory (Домашний каталог)

Во вкладке Home Directory (Домашний каталог) (см. рис. 2.6) указывается место расположения данного сайта и то, как он осуществляет обработку данных.

Указание IIS на место расположения содержимого сайта

Для указания IIS на место расположения содержимого сайта выберите соответствующий переключатель.

A Directory Located on This Computer (Каталог на этом компьютере). Выберите данную опцию, затем в поле Local Path (Локальный путь) задайте любой логический диск и каталог, в котором находится содержимое сайта. Кнопка Browse (Обзор) поможет перейти к нужному каталогу или вести путь в поле.

Рис. 2.6. Вкладка Home Directory (Домашний каталог)

A Share Located on Another Computer (Ресурс на другом компьютере). При выборе данной опции изменится текст вкладки Home Directory. Текстовое поле Local Path (Локальный путь) будет называться Network Directory (Сетевая папка), кнопка Browse (Обзор) – Connect As (Подключить как). Введите путь согласно правилам соглашения об универсальном назначении имен (Universal Naming Convention, UNC) в виде \\имя_сервера\имя_расположения. Нажмите на кнопку Connect As и задайте имя пользователя и пароль, используемые IIS для подключения к указанному месту, в диалоговом окне Network Directory Security Credentials (Мандаты безопасности сетевого каталога). Если сервер не зарегистрирован в системе, то у него нет маркера доступа к общим сетевым ресурсам. А введенное имя пользователя и пароль позволят IIS проходить аутентификацию.

IIS может использовать имя пользователя и пароль, указываемые клиентом при аутентификации на сайте. Для этого выберите опцию Always Use The Authenticated User’s Credentials When Validating Access To The Network Directory (Всегда использовать мандаты аутентифицированного пользователя при подтверждении доступа к сетевой папке) в диалоговом окне Network Directory Security Credentials. Если пользователю не разрешен доступ к удаленному сетевому ресурсу, то он не получит доступа и к ресурсам IIS.

Перенаправление на URL. При выборе опции появляется текстовое поле Redirect To (Перенаправлять на). Укажите в нем адрес URL, на который будут переходить клиенты при подключении к данному ресурсу. Отметьте одну из опций.

  • The Exact URL Entered Above (Точный URL, указанный выше). Перенаправляет клиента на адрес URL, указанный в поле Redirect To (Перенаправлять на). В поле должен быть указан полный и достоверный адрес URL.
  • A Directory Below URL Entered (Папка, находящаяся под указанным URL). Перенаправляет клиента в дочернюю папку под родительским каталогом, указанным клиентом в браузере. При выборе этой опции следует просто ввести имя подкаталога с префиксом в виде слеша (/).
  • A Permanent Redirection For This Resource (Постоянное перенаправление на этот ресурс). Используется при перемещении сайта с одного URL на другой. Она передает клиенту сообщение «HTTP 301 Permanent Redirect». Некоторые клиенты после получения этого сообщения автоматически обновляют свои закладки.
Параметры домашнего каталога

При выборе переключателей A Directory Located on This Computer (Каталог на этом компьютере) или A Share Located on Another Computer (Ресурс на другом компьютере) открывается доступ к указанным ниже опциям. Помните о том, что IIS базируется на файловых системах, поэтому при работе с разрешениями аутентифицированный (или анонимный) пользователь должен иметь соответствующие права.

Опция Script Source Access (Доступ к исходным кодам сценариев). При включении опции клиенты получают доступ к исходному коду сценариев (Active Server Pages, ASP) при установке соответствующих разрешений на чтение/запись. Поскольку обработка сценариев происходит на серверной части, не открывайте клиенту доступ к их исходному коду и оставьте опцию отключенной.

Опция Read (Чтение). При включении опции клиенты получают разрешение на чтение файлов. Если на веб-сайте клиенты работают с веб-содержимым, то рекомендуется включить данную опцию. Опция Read отключается в том случае, если клиентам разрешается отгрузка файлов с разрешением на запись и исключается чтение отгруженных файлов (см. соответствующее техническое замечание).

Опция Write (Запись). При включении опции клиентам с браузерами HTTP 1.1, поддерживающими функцию PUT, разрешается отгружать файлы в данный каталог.

Предупреждение. Если пользователям будет разрешено чтение и запись файлов в каталог, любой пользователь сможет отгрузить файл и затем выполнить его. При включении сценариев они выполняются на сервере, поэтому злоумышленник может отгрузить вредоносный ASP-файл, выполнить его и повредить сервер.

Опция Directory Browsing (Просмотр каталогов). При включении опции клиенты получают разрешение на просмотр каталогов, а, следовательно, и всех его файлов. Если существует страница по умолчанию, то она отобразится клиенту. В противном случае клиент увидит перечень всех файлов и каталогов, кроме виртуальных, поскольку их нет в файловой системе. Включение опции представляет угрозу безопасности, так как любой пользователь получает возможность просмотра файловой структуры сайта.

Опция Log Visits (Вести журнал посещений). При включении опции все посещения данного каталога записываются в журнал, если IIS ведет журнал.

Опция Index This Resource (Индексировать этот ресурс). При включении опции каталог будет проиндексирован службой Microsoft Indexing Service (Служба индексации Microsoft), если она установлена и включена.

Параметры приложений

В секции Application Settings (Параметры приложений) настраиваются параметры приложений для определения их границ. При создании приложения можно указать, что оно выполняется в созданном вами пуле приложений. Это позволяет отделить приложения друг от друга и настроить рабочие процессы для работы с проблемными приложениями, сценариями или содержимым, которое следует изолировать.

Application Name (Имя приложения). Задается имя создаваемого приложения. Если текстовое поле затемнено и доступна кнопка Create (Создать), это означает, что приложение еще не создано. Если доступна кнопка Remove (Удалить), то для данного каталога определено приложение, и в текстовом поле Application Name отображается его имя.

Execute Permissions (Разрешения на выполнение). Задается тип содержимого, разрешенного на данном сайте.

  • None (Нет). Значение по умолчанию для IIS 6. Представляет собой значительное изменение в готовой конфигурации IIS. В предыдущих версиях разрешалось выполнение сценариев (таких как ASP) при стандартной установке IIS. Это вызывало проблемы, тем более что IIS устанавливался по умолчанию при инсталляции Windows, и, следовательно, Windows была настроена и на выполнение IIS, и на выполнение его сценариев. Теперь отключение сценариев в стандартной установке обеспечивает наиболее безопасную конфигурацию IIS по умолчанию.
  • Scripts Only (Только сценарии). Разрешает выполнение на сайте сценариев ASP. Опцию следует включать только при необходимости, поскольку она позволяет исполнять любые типы сценариев.
  • Scripts And Executables (Сценарии и исполняемые файлы). Разрешает выполнение на сайте сценариев и исполняемых файлов. Под категорию исполняемых файлов попадают файлы ( .exe ), динамически подсоединяемые библиотеки ( .dll ) и сценарии общего шлюзового интерфейса ( .cgi ). Опцию следует включать только при необходимости, поскольку она открывает доступ к файлам любого типа и позволяет их выполнять.

Предупреждение. Убедитесь, что разрешения Write (Запись) NTFS и Write (Запись) IIS отключены в каталогах, для которых не установлено None (Нет) в разрешениях на выполнение.

Application Pool (Пул приложений). Служит для указания того, в каком пуле приложений будет выполняться содержимое сайта. Этот список заполняется данными из пулов приложений, созданных в IIS MMC. Поле будет затемнено, если для домашнего каталога еще не определено приложение.

Unload (Выгрузить)

С помощью кнопки Unload (Выгрузить) изолированное приложение выгружается из памяти. Если приложение загружено в память, и в конфигурацию вносится изменение, то необходимо его выгрузить для вступления изменения в силу. Если кнопка недоступна, то это значит, что приложение не загружено в память, или вы находитесь не в стартовом каталоге приложения.

Configuration (Настройка)

С помощью кнопки Configuration (Настройка) изменяются параметры конфигурации приложения для каталога. В появившемся окне Application Configuration (Настройка приложения) (см. рис. 2.7) можно настроить некоторые параметры взаимодействия домашнего каталога со сценариями и исполняемым содержимым.

Рис. 2.7. Окно Application Configuration (Настройка приложения)

В окне Application Configuration имеются следующие вкладки.

Вкладка Mappings (Типы файлов). В ней указываются связи расширений файлов с библиотеками DLL ISAPI. По умолчанию указываются все библиотеки ASP ( .asa, .asp,.cdx, .cer ), подключатели к базам данных ( .idc ) и включения серверной части ( .shtm, .shtml, .stm ). При поступлении запроса с помощью этого списка выясняется, какой библиотеке DLL следует передать содержимое в зависимости от расширения запрашиваемого файла.

Если включена опция Cache ISAPI Extensions, то библиотеки ISAPI DLL кэшируются в память, и IIS обрабатывает запросы для ассоциированных расширений без повторной загрузки DLL. Это повышает производительность большинства приложений ISAPI, включая ASP. По умолчанию опция включена, и настоятельно рекомендуется не выключать ее. При отключении опции IIS будет загружать ASP.DLL и создавать объекты состояния приложения и сеанса при каждом запросе страницы ASP. После обработки запроса IIS немедленно выгружает ASP.DLL. Если клиент запросит страницу ASP в процессе выгрузки приложения, то может возникнуть ошибка. Как правило, опция отключается только при тестировании кода ISAPI.DLL, когда каждый раз требуется перезагрузка

Возможно добавление собственных библиотек ISAPI.DLL и назначение для них связей. Для добавления и настройки библиотеки DLL выполните следующие действия.

  1. Нажмите на кнопку Add (Добавить). Появится диалоговое окно Add/Edit Application Extension Mapping (Добавить/Изменить связь расширения с приложением).
  2. Введите имя исполняемого файла (или перейдите к нему), который будет обрабатывать содержимое.
  3. Введите имя расширения. Ставить точку перед расширением не обязательно.
  4. Укажите, следует ли передавать приложению только определенные команды HTTP или же все. Для ограничения набора команд введите разрешенные команды через запятую.
  5. Оставьте отмеченными опции Script Engine (Машина сценариев) и Verify That File Exists (Проверка существования файла), если нет оснований для их отключения. Далее мы расскажем об их назначении.

Limiting HTTP Verbs (Ограничить команды HTTP). HTTP-клиенты используют команды для запросов на действия сервера. Эти команды (методы) определяются в спецификации W3C для HTTP. Наиболее общими являются методы GET, HEAD, POST и TRACE, хотя используются также PUT и DELETE. Рекомендуется ограничить набор команд для уменьшения уязвимости к атакам. Например, связывание с файлами ASP ограничивает набор командами GET, HEAD, POST и TRACE. При наличии ограничения приложению для обработки будут передаваться только команды, находящиеся в списке.

    • Script Engine (Машина сценариев). Опция включена по умолчанию. В этом случае IIS будет обрабатывать содержимое как сценарий, а не исполняемый файл, что исключает включение разрешений выполнения для каталога, поскольку сценарии связаны с интерпретатором.
    • Verify That File Exists (Проверка существования файла). При включенной опции IIS проверяет наличие файла сценария и право пользователя на работу с файлом перед отправкой интерпретатору. Так как каждый сценарий открывается дважды (один раз для проверки и один раз для чтения и отправки машине сценариев), то включение опции приводит к снижению производительности. В IIS 5 опция отключена по умолчанию, и, как и многие другие опции, отключена в IIS 6 в целях безопасности.
Примечание. Даже при связывании и включении расширений ISAPI они могут не работать, если в разрешениях домашнего каталога не выбрана опция Scripts Only (Только сценарии). В этом случае для успешной обработки содержимого включите разрешение Scripts And Executables (Сценарии и исполняемые файлы).
Для изменения связи приложения с расширением выделите расширение и нажмите на кнопку Edit (Изменить). Появится такое же окно, что и после нажатия на кнопку Add (Добавить), с идентичными опциями.
Для удаления связи приложения с расширением выделите расширение и нажмите на кнопку Remove (Удалить), затем подтвердите удаление.
Групповой символ используется при установке связи приложения ISAPI со всеми файловыми расширениями. Возникает вопрос, почему бы просто не применить фильтр ISAPI. Между фильтром ISAPI и связью приложения с помощью группового символа существуют некоторые различия. На уровне администрирования фильтры ISAPI применяются ко всему веб-сайту в целом, а расширения ISAPI конфигурируются для отдельных каталогов. Подкаталог наследует групповые связи с расширениями от родительского каталога, если не содержит свои собственные (в этом случае родительские связи игнорируются).
Для добавления связи приложения нажмите на кнопку Insert (Добавить). Затем введите имя исполняемого файла (или перейдите к нему) для обработки содержимого. Опция Verify That File Exists (Проверить существование файла) действует так же, как и для связей с расширениями, и является мерой безопасности.
Для изменения связи приложения выделите расширение и нажмите на кнопку Edit (Изменить). Появится окно Add (Добавить) с аналогичными опциями.
Для удаления связи приложения выделите расширение и нажмите на кнопку Remove (Удалить), затем подтвердите удаление.
Кнопки Move Up (Вверх) и Move Down (Вниз) устанавливают приоритет связи приложений ISAPI. Запросы будут передаваться через заданные связи с приложением в установленном здесь порядке.

Вкладка Options (Параметры). Вкладка Options (см. рис. 2.8) служит для настройки конфигурации приложения, машины сценариев, определения способа поддержки сеансов.

Опция Enable Session State (Включить состояние сеанса) настраивает ASP на создание сеанса серверной части для каждого клиентского сеанса на сервере. Такой подход применяется только для обычных сценариев ASP, так как состояние сеанса настраивается в файле web.config для приложений ASP.NET. В сеансе сохраняются данные о пользователе, переходящие на каждую посещаемую им страницу. В программе эти данные хранятся в переменных в объекте сеанса. Сеансовые переменные могут занимать значительный объем памяти, поэтому не рекомендуется использовать их в большом количестве на сайтах с высоким уровнем трафика, чтобы не снижать производительность.

Параметр Session Timeout (Время простоя сеанса) определяет промежуток времени, в течение которого сеанс находится в состоянии бездействия перед закрытием. Укажите любое значение от 1 до 2 000 000 000 минут. Кто знает, возможно сеансовая переменная понадобится вам через 3800 лет.

Рис. 2.8. Вкладка Options (Параметры) окна Application Configuration (Настройка приложения)

Совет. Не торопитесь использовать состояния сеанса, если вы работаете с веб-структурой ASP или применяете рециркуляцию рабочих процессов. В веб-структуре ASP при подключении к веб-сайту пользователь может всякий раз попадать на другой сервер. Поскольку состояние сеанса создается на другом сервере (не там, где в данный момент зарегистрирован пользователь), информация о состоянии сеанса теряется. Это происходит и при рециркуляции рабочего процесса, содержащего информацию о сеансе. Вследствие этого рекомендуем вам либо отказаться от использования состояния сеанса, либо применять ASP.NET.
Отметьте опцию Enable Buffering (Включить буферизацию) для настройки сервера на кэширование всего выходного содержимого сценария ASP перед его отправкой браузеру. Опция отправляет выходные данные единовременно, а не строка за строкой. Однако в случае обработки большого сценария нужно отобразить страницу сразу после обработки содержимого, поэтому данная опция должна быть отключена.
Родительские пути позволяют устанавливать ссылки на каталоги с использованием относительных имен путей в коде ASP. Путь к сценарию в родительском каталогеобозначается двумя точками («..»). Это относится только к динамическому содержимому, такому как файлы включений. К статическому содержимому можно обратиться посредством относительных путей. Опция Enable Parent Paths (Включить родительские пути) отключена по умолчанию в целях безопасности, поскольку динамическое содержимое можно выполнить на этой же странице без указания структуры каталогов для перехода в нужное место.
Примечание. В IIS 6 родительские пути отключены по умолчанию. Если в вашем коде имеются относительные пути, и этот код раньше выполнялся в IIS 5, то нужно или изменить код, или отметить опцию Enable Parent Paths (Включить родительские пути), чтобы динамическое содержимое выполнялось в IIS 6.
Опция Default ASP Language (Язык ASP по умолчанию) определяет язык, обрабатывающий содержимое сценариев. Содержимое сценариев обозначается тегами . С IIS 6 поставляются два языка: Microsoft Visual Basic Scripting Edition (по умолчанию) и Microsoft JScript. Установите любую машину сценариев ActiveX для интерпретации содержимого на сайте.
Опция ASP Script Timeout (Срок выполнения сценария) указывает максимальный промежуток времени для выполнения сценария. Если опция отключена, то неграмотно написанный сценарий может выполняться бесконечно долго и вызовет проблемы на сервере. По окончании заданного времени сценарий останавливается, обработанное содержимое передается браузеру с сообщением об ошибке, в котором говорится о достижении временного предела. Укажите любой интервал от 1 до 2 000 000 000 с (это 63 года!).
Опция Enable S >Вкладка Debugging (Отладка). Вкладка Debugging окна Application Configuration (Настройка приложения) (см. рис. 2.9) помогает в решении проблем при тестировании кода сценариев ASP. При включении опции IIS использует Microsoft Script Debugger (Отладчик сценариев Microsoft) для проверки кода. IIS настраивается на отладку сценариев как серверной, так и клиентской частей. Включение сценариев серверной части отрицательно сказывается на производительности, поэтому пользуйтесь этим только при необходимости. Можно настроить сообщение, передаваемое клиентам при возникновении ошибки в сценарии.

Рис. 2.9. Вкладка Debugging (Отладка)

  • Enable ASP Server-Side Script Debugging (Включить отладку сценариев серверной части). Включение опции настроит IIS на использование отладчика сценариев для проверки кода в процессе обработки.
  • Enable ASP Client-Side Script Debugging (Включить отладку сценариев клиентской части). Включение опции разрешит отладку ASP-страниц с помощью Microsoft ScriptDebugger на клиентской части. При возникновении ошибки клиент получит сообщение с вопросом о том, нужно ли провести отладку ошибки.
  • Send Detailed ASP Error Messages to Client (Отправлять клиенту подробные сообщения об ошибках). Являясь опцией по умолчанию, обеспечивает отправку стандартного сообщения об ошибке с именем файла и относительным путем, особого сообщения об ошибке и номера строки, в которой произошла ошибка. Это дает клиентам доступ к подробной информации о настройках сайта, поэтому в целях безопасности имеет смысл отправлять другие сообщения об ошибках.
  • Send the Following Text Error Message to Client (Отправлять клиенту следующее текстовое сообщение об ошибке). Отметьте эту опцию и введите текст собственного сообщения, отправляемого клиенту при возникновении ошибки в сценарии ASP. Например, введите сообщение с указанием адреса электронной почты, по которому клиент сможет отправить отчет об ошибке.
Создание компоновки соседних версий

Создадим файл-манифест, позволяющий приложению использовать более старую версию библиотеки DLL. Он является ключевым объектом при компоновке соседних версий, поэтому с него и начинаем. В нем содержится информация для IIS о том, какой графический пользовательский интерфейс использовать для загружаемого COM-объекта. Назовем наш файл Myapp.xml ; его нужно разместить в каждом виртуальном каталоге, использующем данную библиотеку DLL.

Теперь нужно дать IIS команду на использование компоновки соседних версий. Во вкладке Options (Параметры) отметьте опцию Enable Side By Side Assemblies (Включить параллельные сборки). После этого введите Myapp.xml в поле Manifest File Name (Имя файла-манифеста). Наш файл-манифест находится в этом же каталоге, поэтому указывается только имя файла.

Вкладка Documents (Документы)

В окне Web Site Properties (Свойства веб-узла) имеется еще одна вкладка – Documents (Документы) (см. рис. 2.10). В ней настраиваются стандартные страницы веб-сайта, а также нижний колонтитул, размещаемый на каждой странице.

Рис. 2.10. Вкладка Documents (Документы)

Enable Default Content Page (Включить страницу с содержимым по умолчанию)

Эта опция указывает страницу по умолчанию, которая отображается в том случае, если в строке адреса URL запроса не указано имя документа. Например, при вводе клиентом адреса http://www.microsoft.com веб-сервер IIS проверяет наличие документа по умолчанию. При включенной опции этот документ отображается. Такой подход не требует от клиента указания имени документа для каждого посещаемого сайта. Если документ по умолчанию не определен, и клиент не указал имя документа, то дальнейшее развитие событий зависит от того, включен или выключен просмотр каталогов.

  • Просмотр каталогов включен. Сервер отправляет список содержимого каталога.
  • Просмотр каталогов отключен. Сервер отправляет сообщение об ошибке: «Просмотр содержимого данного виртуального каталога запрещен».
Добавление и удаление страниц с содержимым по умолчанию

IIS производит поиск имен заданных страниц, если в запросе не определена конкретная страница. Имя файла должно полностью соответствовать имени страницы, поэтому не забудьте указать расширение, причем сделайте это правильно ( Default.htm не то же самое, что Default.html ). Для добавления в список имени файла нажмите на кнопку Add (Добавить) и введите имя страницы. Для удаления имени файла из списка выделите его и нажмите на кнопку Remove (Удалить). Подтверждение на удаление не запрашивается.

Установка порядка страниц по умолчанию

При поиске страницы по умолчанию IIS проверяет список в порядке, установленном в данном окне. IIS использует первую страницу, имя которой соответствует критерию поиска. Для изменения порядка элементов списка выделите имя страницы и с помощью кнопок Move Up (Вверх) и Move Down (Вниз) переместите ее в нужное место.

Enable Document Footer (Включить нижний колонтитул документа)

Отметьте эту опцию для включения нижнего колонтитула документа. Нижний колонтитул представляет собой документ HTML, отображаемый внизу каждой страницы. Он используется, если на всех страницах сайта нужно разместить некоторую информацию, например, об авторских правах, не вводя код (или файл) в каждую страницу. Документ HTML содержит только конкретный код для отображения без открывающего тега . Используются теги, форматирующие текст нижнего колонтитула. К сожалению, нижние колонтитулы можно разместить только на страницах со статическим содержимым (HTML).

После включения данной опции нажмите на кнопку Browse (Обзор) для выбора документа, используемого в качестве нижнего колонтитула. Код в документе должен быть HTML-совместимым (не должен содержать сценарии), при этом не обязательно использовать файл с расширением .HTM.

Вкладка Directory Security (Безопасность каталога)

Вкладка Directory Security (Безопасность каталога) (см. рис. 2.11) служит для настройки параметров безопасности сайта: настройки аутентификации клиентов IIS, указания клиентов, которые могут подключаться к серверу, установки защиты соединения между клиентом и сервером.

Рис. 2.11. Вкладка Directory Security (Безопасность каталога)

Изменение параметров аутентификации и контроля доступа

В этой секции выбирается тип аутентификации сайта для обеспечения его безопасности. Не забывайте о взаимодействии между защитой NTFS и мерами безопасности IIS, об их воздействии на пользователей, проходящих процедуру аутентификации на веб-странице. Для изменения параметра Authentication and Access Control (Аутентификация и контроль доступа) нажмите на кнопку Edit (Изменить). Откроется диалоговое окно Authentication Methods (Методы аутентификации) (см. рис. 2.12).

Рис. 2.12. Диалоговое окно Authentication Methods (Методы аутентификации)

Опция Enable Anonymous Access (Включить анонимный доступ). При включении опции пользователи подключаются к веб-странице без ввода аутентификационных данных. Вконтексте безопасности используется учетная запись Guest (Гость) – гостевая учетная запись интернета. Она создается при установке IIS и ей присваивается имяIUSR_ . Опция позволяет настроить меры безопасности для всех анонимных пользователей, посещающих сайт с помощью этой учетной записи. Можно отказаться от гостевой учетной записи интернета, а вместо нее использовать другую учетную запись (локальную или расположенную на доверенном домене).

Совет. Любая учетная запись, используемая для доступа к веб-страницам, должна иметь разрешение на доступ к файлам на уровне NTFS. Более подробная информация об установке этих разрешений приведена в лекции 6.

Для выбора учетной записи анонимного доступа выполните следующие действия.

  1. Введите имя учетной записи в диалоговом окне Authentication Methods (Методы аутентификации). Для учетной записи домена используйте формат имени имя_домена\имя_пользователя.
  2. Для поиска нужного имени нажмите на кнопку Browse (Обзор). Появится стандартное окно выбора объекта Windows 2003.
  3. В этом окне выберите имя учетной записи пользователя и ее место расположения. Поиск можно произвести нажатием на кнопку Advanced (Дополнительно).
  4. После выбора учетной записи нажмите на кнопку OK.
  5. Введите пароль учетной записи в текстовом поле Password (Пароль). После нажатия на кнопку OK появится окно подтверждения пароля.

При указании имени пользователя и пароля IIS не проверяет правильность этой информации. Если данные введены неправильно, IIS будет работать с отключенным анонимным доступом к сайту. Обнаружить это довольно сложно, так как Internet Explorer автоматически будет использовать другие методы аутентификации, например, входные данные зарегистрированного в системе пользователя. Как администратор вы получите доступ к ресурсам, а вот как пользователь-гость – нет. Выяснить аутентифицируемого в данный момент пользователя можно при помощи файла журнала сайта, в котором фиксируется этот процесс. При использовании учетной записи, не имеющей доступа к указанному ресурсу, появится окно для ввода аутентификационных данных.

Аутентифицированный доступ. Секция Authenticated Access окна Authentication Methods (Методы аутентификации) отображает типы аутентификации, включенные на сайте. Если гостевая учетная запись IIS не имеет доступа к ресурсу, IIS проверяет доступные типы аутентификации.

    Интегрированная аутентификация Windows. Наиболее безопасный способ аутентификации, прекрасно подходит для любых версий браузера Internet Explorer в отсутствие HTTP-proxy. Он встраивается во все браузеры IE, начиная с версии 2.0. Браузеры типа Netscape не поддерживают данный метод аутентификации. Интегрированная аутентификация Windows использует на сервере принцип NT запрос/ответ или протокол Kerberos. При поддержке клиентом и сервером Kerberos и в случае доступности доверенного центра распространения ключей Key Distribution Center (KDC) используется протокол Kerberos; в противном случае – принцип NT запрос/ответ.

Аналитическая аутентификация для серверов доменов Windows. Аналитическая аутентификация доступна при использовании учетных записей Active Directory. Данный метод, хотя и связан с некоторыми опасностями, все же более безопасен, чем базовая аутентификация. Наряду с Active Directory требуется также наличие протокола HTTP 1.1, поэтому аналитическая аутентификация работает только с новыми версиями браузеров, поддерживающими этот протокол. Нужно также, чтобы контроллер домена содержал открытую копию каждого пароля для проверки паролей на наличие случайной информации, отправляемой клиентом. В этом и заключается угроза безопасности. Сохранение паролей в открытом виде на диске представляет собой очевидный риск, поэтому убедитесь, что контроллер домена надежно защищен от вторжений, в противном случае злоумышленник может выяснить необходимые ему пароли. Преимуществом аналитической аутентификации является то, что пароль не передается через сеть в открытом виде, как в базовой аутентификации.

Аналитическая аутентификация представляет собой простой хэш и поэтому работает через сетевые экраны и прокси-серверы. Она доступна и для каталогов Web-based Distributed Authoring and Versioning (WebDAV). Поскольку для аналитической аутентификации нужен домен, при ее выборе становится доступным поле Realm (Область). Если аналитическая (или базовая) аутентификация не включена, поле Realm (Область) недоступно. В этом поле указывается база данных учетных записей пользователей, используемая при аутентификации. Введите в поле имя области с клавиатуры или с помощью кнопки Select (Выбор) выберите нужное имя из списка областей.

Ограничение доступа по IP-адресу или имени домена

IIS позволяет ограничить доступ к сайту пользователей без указания имени пользователя и пароля. С помощью ограничения по IP-адресам указывается конкретная группа пользователей, которой предоставляется или запрещается доступ к сайту. Это используется в следующих случаях.

  • Необходимо обеспечить доступ к сайту определенной группе пользователей.
  • Известны все IP-адреса пользователей, которым предоставляется доступ.
  • Нужно запретить другим пользователям доступ к сайту.
  • Нет необходимости в аутентификации как в средстве контроля доступа, либо нужно использовать еще одно ограничение.

Если вы решили ограничить доступ по IP-адресам, то эти ограничения необходимо настроить. Нажмите на кнопку Edit (Изменить) в области IP Address And Domain Name Restrictions (Ограничения по IP-адресу и доменному имени) во вкладке Directory Security (Безопасность каталога). После нажатия на кнопку Edit (Изменить) откроется диалоговое окно IP Address And Domain Name Restrictions (Ограничения по IP-адресу и доменному имени) (см. рис. 2.13). Необходимо выбрать способ установки ограничения: запретить доступ всем пользователям, кроме отдельных конкретных лиц, либо разрешить доступ всем и наложить запрет на доступ к сайту определенным пользователям. При выборе опции Granted Access (Открыть доступ) подход к ограничению будет лояльным; при выборе опции Denied Access (Запретить доступ) претворится в жизнь принцип «запретить доступ всем, за некоторым исключением».

Рис. 2.13. Диалоговое окно IP Address And Domain Name Restrictions (Ограничения по IP-адресу и доменному имени)

Изменение ограничений по IP-адресу. Для добавления в список IP-адреса нажмите на кнопку Add (Добавить). Появится окно Grant Access (Предоставить доступ) или Deny Access (Запретить доступ) в зависимости от того, какая опция выбрана.

Выбор предоставления или запрета доступа является глобальным решением. Нельзя отказать в доступе некоторым IP-адресам и разрешить доступ другим. Здесь нужно действовать по принципу «все или ничего». Выберите необходимый тип доступа.

  • Один компьютер. Позволяет ввести IP-адрес в список доступа. Таким способом можно последовательно указать несколько компьютеров. Если IP-адрес компьютера неизвестен, нажмите на кнопку DNS Lookup (Поиск по DNS) для определения IP-адреса по имени.
  • Группа компьютеров. Позволяет ввести идентификатор сети и маску подсети для добавления компьютеров в список. С помощью масок подсети переменной длины можно довольно точно определить IP-адреса в списке.
  • Доменное имя. Позволяет ввести имя домена для запрета с него доступа к сайту. Будьте внимательны при использовании этой опции, так как при ее работе выполняется обратный поиск по отношению к каждому клиенту, подключающемуся к серверу, и выяснение того, не является ли он членом запретного домена. Это отрицательно сказывается на производительности и вызывает задержки при аутентификации клиентов. Операции обратного поиска, как правило, требуют большого количества времени для выполнения.

После выбора и настройки типа доступа нажмите на OK, чтобы соответствующая запись появилась в списке.

Для удаления выделите запись и нажмите на кнопку Remove (Удалить). Для изменения выделите запись и нажмите на кнопку Edit (Изменить).

Безопасность соединения

Область Secure Communications (Безопасность соединения) во вкладке Directory Security (Безопасность каталога) служит для настройки сертификатов при аутентификации и шифровании. Она позволяет создать запросы сертификатов, присваивать, экспортировать, импортировать и резервировать сертификаты, настроить взаимодействие сервера с сертификатами клиентов.

Для настройки сертификата на данном сервере нажмите на кнопку Server Certificate (Сертификат сервера). Отобразится окно Web Server Certificate Wizard (Мастер сертификатов веб-сервера). Нажмите на кнопку Next (Далее) для изменения параметров присвоения сертификата.

Create A New Certificate (Создать новый сертификат). Позволяет настроить запрос для отправки в бюро сертификатов (CA) (см. лекцию 10). Запрос направляется либо в онлайновое бюро сертификатов, либо сохраняется в файле, и затем файл направляется в бюро сертификатов через процедуру регистрации. Для отправки запроса онлайновому бюро сертификатов установите на сервере Certificate Services (Службы сертификатов).

Совет. Корпоративные бюро сертификатов (CA) располагаются в Active Directory и имеют записи SRV в DNS, поэтому вы сможете их найти. Более подробная информация о записях SRV и DNS приведена в лекции 8. При наличии отдельного бюро сертификатов, установленного на данном компьютере, IIS не сможет его распознать. Но это не такая большая проблема, поскольку можно вручную утвердить и установить сертификат (см. лекцию 7 курса «Программирование в IIS»). Рекомендуем вам расположить CA в защищенном месте; уязвимый веб-сервер для этой цели не подходит.

При создании запроса для отправки в бюро сертификатов выполните следующие шаги.

  1. Выберите опцию Create A New Certificate (Создать новый сертификат), затем нажмите на кнопку Next.
  2. Выберите опцию Prepare The Request Now, But Send It Later (Подготовить запрос сейчас, но отправить его позже), затем нажмите на кнопку Next
  3. Введите желаемое имя для сертификата – можете указать любое имя.
  4. Укажите длину сертификата в битах. Можете выбрать значение 512, 1024, 2048, 4096, 8192 или 16384 бита для создания сложного хэша.
  5. Если требуется выбрать поставщика криптографических услуг (CSP) для генерирования данного сертификата, отметьте соответствующую опцию. CSP представляет собой алгоритм, используемый для генерирования сертификатов.
  6. Введите имя вашей организации и укажите подразделение организации. Помните, что при использовании услуг коммерческого бюро сертификатов нужно указать ваше официальное деловое имя. Нажмите на кнопку Next.
  7. Введите общее имя сайта. Оно должно соответствовать имени DNS или NetBIOS, используемому для сайта. Поскольку каждый сертификат соответствует определенному имени, он пригоден только для одного имени. При использовании другого имени DNS или NetBIOS нужно получать новый сертификат. Нажмите на кнопку Next.
  8. Введите данные в полях City (Город), State (Штат) и Country (Страна). Не допускайте сокращений. Нажмите на кнопку Next.
  9. Введите имя и место расположения файла для размещения запроса. Помните об этом файле, поскольку он будет использоваться в запросе на сертификат. Нажмите на кнопку Next.
  10. Следующее окно представляет собой окно отчета. Убедитесь в правильности введенной информации. Нажмите на кнопку Next.
  11. Нажмите на кнопку Finish (Готово) для завершения работы мастера.

Copy Or Move A Certificate From A Remote Server Site To This Site (Копировать или переместить сертификат с удаленного сервера на этот сайт). Возможно получение сертификатов с другого веб-сайта. Данная опция не позволяет выполнить экспортирование сертификата в файл, представляющее собой угрозу безопасности. Для копирования или перемещения сертификата с удаленного веб-сервера выполните следующие действия.

  1. В окне IIS Certificate Wizard (Мастер сертификатов IIS) выберите опцию Copy Or Move A Certificate From A Remote Server Site To This Site (Копировать или переместить сертификат с удаленного сервера на данный сайт), затем нажмите на кнопку Next (Далее).
  2. В диалоговом окне Copy/Move Certificate (Копировать/Переместить сертификат) выберите нужное действие.
  3. Укажите, нужно ли экспортировать сертификат с данного веб-сайта. Нажмите на кнопку Next.
  4. Введите имя компьютера (или перейдите к нему), с которого импортируется сертификат.
  5. Введите аутентификационные данные пользователя, имеющего достаточные разрешения для доступа к сертификату, затем нажмите на кнопку Next.
  6. Укажите расположение сайта, из которого импортируется сертификат. С помощью кнопки Browse (Обзор) выберите это место из списка. Нажмите на кнопку Next.
  7. Проверьте данные в результирующем окне и убедитесь, что импортирован правильный сертификат.
  8. Нажмите на кнопку Next, затем нажмите на кнопку Finish (Готово).

Обработка сертификата. После получения ответа от бюро сертификатов обработайте ожидающий подтверждения запрос на сертификат. Для этого выполните следующие действия.

  1. Запустите Web Server Certificate Wizard (Мастер сертификатов веб-сервера) еще раз, нажав на кнопку Server Certificate (Сертификат сервера) во вкладке Directory Security (Безопасность каталога).
  2. В диалоговом окне Server Certificate (Сертификат сервера) выберите опцию Process The Pending Request (Обработать ожидающий сертификат) и установите сертификат. Нажмите на кнопку Next.
  3. Введите имя файла ответа (или перейдите к его месту расположения), полученного от бюро сертификатов, затем нажмите на кнопку Next.
  4. Введите номер порта SSL, который будет использоваться сайтом. Нажмите на кнопку Next.
  5. Просмотрите окно с отчетом и убедитесь в правильности указанной информации.
  6. Нажмите на кнопку Next, затем нажмите на кнопку Finish (Готово).

Теперь у вашего сайта имеется правильный сертификат, и его можно использовать для порта, указанного при установке файла ответа на запрос сертификата. В случае отсутствия ответа нужно удалить ожидающий запрос. Для этого выполните следующие шаги.

  1. В окне Web Server Certificate Wizard (Мастер сертификатов веб-сервера) выберите опцию Delete The Pending Request (Удалить ожидающий запрос). В следующем диалоговом окне появится сообщение о том, что при продолжении работы мастера станет невозможной обработка ответов на этот запрос, а также предложение отказаться от продолжения.
  2. Нажмите на кнопку Next (Далее) для удаления запроса.
  3. Нажмите на кнопку Finish (Готово) для завершения работы мастера.

Просмотр деталей установленного сертификата. При наличии установленного сертификата просмотрите информацию о нем, нажав на кнопку View Certificate (Просмотр сертификата) во вкладке Directory Security (Безопасность каталога).

  • Вкладка General (Общие). Содержит информацию о сертификате: назначение сертификата, выпустившее его лицо, заказчик сертификата, срок действия сертификата.
  • Вкладка Details (Детали). Содержит очень важные сведения о сертификате. В ней можно просмотреть все свойства сертификата, запустить Certificate Export Wizard (Мастер экспорта сертификатов), включить и отключить цели данного сертификата и указать несколько мест для загрузки из различных бюро сертификатов.
  • Вкладка Certification Path (Путь сертификата). Позволяет просмотреть иерархию сертификатов CA для данного сертификата. Отображает данные о том, является ли сертификат действительным.

Изменение безопасных соединений. С помощью кнопки Edit (Изменить) можно изменить связи сертификата и списки доверия (см. рис. 2.14). Возможна настройка принудительного использования SSL.

Рис. 2.14. Окно Secure Communications (Безопасность соединений)

Опция Require Secure Channel (Требовать безопасный канал) обеспечивает принудительное использование SSL на сайте. Любому браузеру, который не использует протокол SSL, доступ к сайту будет запрещен.

Опция Require 128-Bit Encryption (Требовать 128-битное шифрование) позволяет в принудительном порядке использовать мощное шифрование. Это позволяет предотвратить доступ к сайту браузеров с более слабым шифрованием. На сайте Microsoft доступны обновления для Internet Explorer, реализующие 128-битное шифрование (http://www.microsoft.com/ie). Их может загрузить любой пользователь страны, не входящей в ряд государств, на которые США наложило информационное эмбарго (так как Microsoft является государственной корпорацией США).

Использование клиентских сертификатов реализует на сайте идентификацию подключающихся пользователей. Клиентские сертификаты являются способом контроля доступа. Можно указать следующие настройки.

  • Ignore (Игнорировать). Опция по умолчанию. Любой представленный сертификат клиента не принимается.
  • Accept (Принять). Принимает сертификат. Позволяет настроить связи сертификатов, что не является обязательным. Любой браузер без сертификата клиента получит доступ к сайту.
  • Require (Требовать). Требует использование сертификатов. Любому клиенту без сертификата доступ к сайту запрещен. Для выбора этой опции нужно также отметить опцию Require Secure Channel (Требовать безопасный канал).

Установка связей сертификатов предназначена для аутентификации компьютера клиента посредством учетной записи Windows. Существуют два типа связей: «один к одному» и «много к одному».

  • Связь «один к одному». Используется в случае, если учетная запись пользователя имеет свой собственный сертификат. С учетной записью пользователя могут быть связаны несколько сертификатов, но для реализации данной возможности необходим хотя бы один уникальный сертификат. Сертификат импортируется и связывается с учетной записью, после чего используется для аутентификации пользователя.
  • Связь «много к одному». Используется в случае, если с учетной записью пользователя связано несколько сертификатов. Указывается групповой критерий сертификата клиента с данными о сертификате, например, названием подразделения или организации. Если эти данные совпадают, используется указанная учетная запись.

Вкладка HTTP Headers (Заголовки HTTP)

Во вкладке HTTP Headers (Заголовки HTTP) окна Properties (Свойства) (см. рис. 2.15) настраивается срок действия содержимого, оценка содержимого и типы MIME, добавляются заголовки HTTP.

Рис. 2.15. Вкладка HTTP Headers (Заголовки HTTP)

Установка срока действия содержимого

Опция устанавливает срок действия файлов на веб-сайте и используется для остановки кэширования содержимого по истечении установленного срока. Срок действия при запросе передается вместе с содержимым. Используется объект RESPONSE со свойством CACHECONTROL или EXPIRES для установки срока кэширования и периода действия на страницах ASP, однако при работе с графикой он не работает. Опция выполняет указанные функции с помощью следующих параметров.

Expire Immediately (Немедленное истечение срока действия). Предотвращает кэширование данных запрашивающей стороной. Желательно использовать ее на тестовом сайте или сайте разработки при внесении в код изменений, чтобы старые версии не кэшировались в папках IE. Опция работает и для страниц с динамически изменяемым содержимым, когда пользователь каждый раз получает новый результат, чтобы данные этой страницы не кэшировались в автономных папках.

Expire After (Истечение срока действия после). Устанавливает промежуток времени в минутах, часах или днях. Указывается любое значение в интервале от 1 минуты до 32 767 дней (это всего лишь 90 лет).

Expire On (Истечение срока действия в). Устанавливает срок завершения действия содержимого в определенное время. Нельзя указывать дату окончания действия более раннюю, чем текущая дата. Указывается любая дата, вплоть до 31 декабря 2035 года. Поскольку эта дата обрабатывается клиентом, она контролируется его временной зоной, поэтому возможны некоторые отклонения в сроках завершения действия содержимого в зависимости от зоны.

Особые заголовки HTTP

В этой секции можно создавать особый HTTP-заголовок для отправки клиенту, дополняющий обычный заголовок, получаемый клиентом от сервера. Особый заголовок содержит дополнительные данные, полезные для клиента. Он также поддерживает новый HTTP-стандарт, изначально не поддерживаемый IIS 6.

Для добавления особого заголовка выполните следующие действия.

  1. Нажмите на кнопку Add (Добавить). Появится диалоговое окно Add/Edit Custom HTTP Header (Добавить/Изменить особый заголовок HTTP).
  2. Введите имя особого заголовка в соответствующем поле.
  3. Введите значение особого заголовка в соответствующем поле.
  4. Нажмите на кнопку OK.

Заголовок изменяется посредством кнопки Edit (Изменить) и удаляется с помощью кнопки Delete (Remove). При удалении особого заголовка подтверждение удаления не запрашивается.

Оценка содержимого

Существует возможность оценки содержимого сайта. Это добровольная система, разработанная Ассоциацией оценки содержимого интернета (Internet Content Rating Association, ICRA). ICRA представляет собой некоммерческую, независимую организацию, которая дает родителям возможность принимать объективное решение о том, что их дети могут просматривать в интернете. Данная система состоит из двух частей: сначала сайт оценивается веб-мастером (ICRA не производит оценку), затем конечный пользователь устанавливает параметры браузера для блокировки определенных сайтов по их содержимому.

Используются два стандарта оценки содержимого: старый стандарт RSACi и более новая система ICRA. IIS 6 поддерживает систему RSACi, осуществляющую оценку содержимого по четырем категориям.

После оценки системы веб-мастер предоставляет адрес электронной почты человека, оценившего содержимое, для осуществления обратной связи и обсуждения оценок. Можно устанавливать для оценок срок действия, по истечении которого они прекращают функционирование.

Включение оценки содержимого сайта. Выполните следующие действия.

  1. Откройте диалоговое окно Content Ratings (Оценка содержимого), нажав на кнопку Edit Ratings (Изменить оценку) во вкладке HTTP Headers (Заголовки HTTP).
  2. В окне Content Ratings отметьте опцию Enable Ratings For This Content (Включить оценку данного содержимого).
  3. Выберите ту оценку, которую нужно установить.
  4. Используйте ползунок для установки уровня от 0 до 4.
  5. Установите одну оценки или все вместе (при необходимости).
  6. Введите адрес электронной почты в соответствующем поле. Как правило, здесь указывается адрес, отражающий характерную учетную запись (например,webmaster@thisdomain.com ).
  7. Укажите срок действия. Дата должна быть больше текущей. Укажите любую дату до 31 декабря 2035 года.
  8. Нажмите на кнопку OK.
Типы MIME

Многоцелевые расширения почты интернета (MIME) определяют типы файлов, работу клиентов с которыми обслуживает IIS. IIS 6 обслуживает только файлы, связанные со сценариями или соответствующие определенному типу MIME. При обнаружении IIS расширения, для которого отсутствует связь MIME, клиент получает ошибку 404 «Not Found», и сервер фиксирует код подсостояния, равный трем.

Примечание. В правиле MIME есть одно исключение: текстовые файлы с расширением .txt, не являющиеся файлами типа MIME или связанными со сценарием, обслуживаются IIS.

Типы MIME настраиваются на глобальном уровне, на уровне веб-сайта или каталога, причем наследуются в порядке уменьшения уровней. Рассмотрим пример добавления связи MIME.

Предположим, что в интернете нужно опубликовать каталог с файлами журналов. Они имеют расширение .log и формат обычного текста. IIS не поддерживает по умолчанию связи MIME для файлов .log, поэтому придется добавить соответствующую связь.

  1. Нажмите на кнопку MIME Types (Типы MIME) во вкладке HTTP Headers (Заголовки HTTP) на нужном уровне (глобальном, для сайта или каталога, в зависимости от выбранного параметра в MMC).
  2. Нажмите на кнопку New (Создать).
  3. В диалоговом окне MIME Type (Тип MIME) введите расширение файла в поле Extension (Расширение). В данном случае укажите расширение .log.
  4. Введите тип MIME в соответствующем поле. Поскольку файл имеет формат обычного текста, подходящим типом MIME будет text/plain.
  5. Нажмите на кнопку OK. Новое расширение добавится в список.
  6. Нажмите на кнопку OK, затем еще раз.

Теперь ваш каталог (сервер, сайт) настроен на обслуживание файлов .log. Клиенты, выбирающие файл в этом каталоге, будут видеть его в своих браузерах. В данном окне можно изменять и удалять связи с типами MIME.

При неправильной настройке типа MIME IIS будет обслуживать файл, однако система не будет знать, какие действия выполнять с файлом. Пользователям IE придется выбирать программу для открытия данного файла из предлагаемого списка.

Примечание. Как выяснить соответствие типа MIME рассматриваемому файлу? Документы RFC2045 и RFC2046 определяют поля для типов MIME, а также порядок присвоения и просмотра типов агентством IANA (Агентство по выделению имен и уникальных параметров протоколов интернета). Это та же самая организация, которая назначает IP-адреса. Полный перечень типов расположен на сайте организации по адресу http://www.iana.org.

Вкладка Custom Errors (Особые ошибки)

Вкладка Custom Errors (Особые ошибки) (см. рис. 2.16) служит для изменения стандартных сообщений об ошибках, отправляемых IIS. В ней отображается связь каждой ошибки HTTP с кодом подсостояния. Во вкладке можно создать особые сообщения об ошибках и задать сценарии, выполняющиеся при возникновении ошибок.

Рис. 2.16. Вкладка Custom Errors (Особые ошибки)

Особые сообщения об ошибках используются для составления отчетов об ошибках, они помогают в устранении проблем. Например, создан тип сообщения, который соответствует сценарию ASP для уведомления веб-мастера. Сценарий записывает данные об инциденте в журнал, отображает на экране сообщение о возникновении неполадки конечному пользователю и перенаправляет его на страницу по умолчанию. При использовании сценариев сообщения об ошибках становятся полезными в диагностировании проблем, возникающие на веб-сайте.

Для выбора доступны три типа сообщений.

  • Default (По умолчанию). Ошибка по умолчанию, запрограммированная в IIS. Позволяет восстановить исходное состояние, если особая ошибка больше не нужна.
  • File (Файл). Позволяет выбрать файл, используя его полное имя (например, C:\windows\help\errors\iiserror404.asp ).
  • URL. Позволяет направить клиента на страницу сайта по абсолютному пути URL (начиная с верхнего уровня сайта). Следовательно, страницы ошибок HTTP должны находиться на том же сайте, хотя они и могут располагаться в виртуальном каталоге. При вводе URL в неправильном формате отобразится сообщение об ошибке.
Изменение свойств особых ошибок

Для изменения свойств особых ошибок выполните следующие действия.

  1. Выделите ошибку HTTP, затем нажмите на кнопку Edit (Изменить). Появится окно Edit Custom Error Properties (Изменение свойств особой ошибки).
  2. В ниспадающем меню выберите тип сообщения для данной ошибки.
  3. При использовании файла укажите путь к этому файлу или перейдите в его место расположения.
  4. При использовании URL введите абсолютное имя файла.
  5. При выборе опции Default (По умолчанию) ничего указывать не нужно.
  6. После выбора и настройки опции нажмите на кнопку OK.
  7. Нажмите на кнопку OK.

Некоторые сообщения об ошибках нельзя связать с URL

Некоторые сообщения об ошибках нельзя связать с URL. Ниже приведен список таких сообщений.

  • 401.1 Unauthorized: Access is denied due to invalid credentials (Доступ запрещен по причине неверного имени пользователя и пароля).
  • 401.2 Unauthorized: Access is denied due to server configuration favoring an alternate authentication method (Доступ запрещен по причине того, что в конфигурации сервера указан другой метод аутентификации).
  • 401.3 Unauthorized: Access is denied due to an ACL set on the requested resource (Доступ запрещен по той причине, что на запрашиваемом ресурсе расположен список ACL).
  • 401.4 Unauthorized: Authorization failed by a filter installed on the web server (Авторизация не проведена из-за фильтра, установленного на веб-сервере).
  • 401.5 Unauthorized: Authorization failed by an ISAPI/CGI application (Авторизация отменена приложением ISAPI/CGI).
  • 407: Proxy Authentication Required (Требуется аутентификация прокси).
  • 502: Bad Gateway (Ошибка шлюза).

Вкладка BITS Server Extension (Серверное расширение BITS)

Служба интеллектуальной фоновой передачи (Background Intelligent Transfer Service, BITS) позволяет осуществлять медленную передачу большого количества информации в течение длительного времени. Передача данных выполняется в то время, когда сеть не используется, что не сказывается на производительности сети. Вкладка BITS Server Extension (Серверное расширение BITS) доступна, если установлен соответствующий компонент. (Опция установки компонента находится в папке Add/Remove Windows Components [Установка и удаление компонентов Windows]. Дополнительную информацию см. в лекции 1.) IIS использует серверные расширения BITS для получения отгружаемых клиентами в виртуальный каталог файлов. Клиент должен иметь программное обеспечение, позволяющее отгружать файлы при помощи технологии BITS; IIS лишь настраивает сервер на прием файлов, передаваемых посредством BITS. При инициализации передачи BITS управляет ею до тех пор, пока существует сетевое подключение. Если сетевое соединение прерывается, BITS приостанавливает передачу и возобновляет ее с места приостановки после восстановления соединения. Данные передаются независимо от отключений и перезагрузки компьютеров. BITS отслеживает использование сети на компьютере-клиенте и осуществляет передачу при наличии достаточной части полосы пропускания канала.

Рис. 2.17. Вкладка BITS Server Extensions (Серверные расширения BITS)

Allow Clients to Transfer Data to This Virtual Directory (Разрешить клиентам передавать данные в этот виртуальный каталог)

Опция настраивает виртуальный каталог на прием файлов, передаваемых через BITS. При выборе опции Use Default Settings (Использовать настройки по умолчанию) в данной вкладке нельзя настроить какие-либо опции. Опция Customize Settings (Изменить настройки) позволяет внести изменения в параметры. Параметры устанавливаются на уровне веб-сайта в виртуальных каталогах, предназначенных для приема данных посредством технологии BITS. Виртуальный подкаталог наследует параметры родительского виртуального каталога.

Особые настройки

В области Custom Settings (Особые настройки) настраивается максимальный размер файла, передаваемого с помощью BITS, с помощью опции Maximum File Size (Максимальный размер файла). Подразумевается максимальный размер одного файла. Укажите значение от 1 байта до 16 777 215 терабайт. (Искренне желаю вам дожить до момента выпуска новых ПЗУ объемом 16 экзабайт.) Настраивается период действия незавершенных передач файлов до их удаления процессом очистки. Выберите любой интервал времени от 1 с (в этом случае любая незавершенная передача удаляется при запуске очистки диска) до 49 710 дней, по прошествии которых жесткие диски объемом 16 экзабайт будут уже давно пройденным этапом.

Включение поддержки набора серверов

Набор серверов BITS представляет собой группу серверов, на которые клиент может отгружать файлы. Хранилище файлов настраивается на работу с набором серверов двумя способами.

  • Серверы используют одно сетевое место расположения для виртуального каталога.
  • Серверы используют свое собственное локальное хранилище в качестве каталога отгрузки.

При выборе второй опции откроется доступ к опциям поддержки набора серверов.

  • Reconnect To IP Address (Повторное подключение к IP-адресу). Позволяет клиенту узнать IP-адрес для повторного подключения при возобновлении передачи файлов. При использовании серверами локального хранилища клиенту, скорее всего, потребуется повторное подключение к тому же серверу для продолжения передачи файла, а не создание нового подключения к другому серверу. Здесь можно указывать имя DNS, если для этого имени присутствует одна запись A (циклический DNS направит клиента на несколько серверов, и повторное подключение потеряет смысл).
  • Use Original IP Address After (Использовать исходный IP-адрес после). Настраивает интервал времени для повторного подключения. Этот параметр обычно синхронизируется с периодом, установленным в настройках очистки жесткого диска. В случае удаления незавершенной передачи файла повторное подключение к этому же серверу не имеет смысла. Клиенту потребуется повторное подключение с использованием исходного URL по прошествии указанного срока. Укажите любой интервал – от 1 секунды до 49 710 дней.
Разрешение уведомлений

Параметр включает уведомления для данного виртуального каталога, позволяющие передавать приложению сообщение о завершении передачи. Доступны следующие параметры.

  • Notification Type (Тип уведомления). При выборе отправки имени файла сервер передает полный путь файла по URL уведомления. При выборе отправки данных файл передается сервером по URL уведомления с использованием метода HTTP POST.
  • Notification URL (URL уведомления). Указывает URL, используемый для отправки уведомлений. Укажите полный URL или относительный URL.
Удаление незавершенных файлов

В некоторых случаях клиент не возобновляет незавершенную передачу файла. IIS периодически проводит «очистку» каталогов, чтобы не заполнять дисковое пространство этими незавершенными файлами. Трудность состоит в обеспечении достаточно большого промежуток времени для завершения передачи файлов клиентами, редко подключающимися к серверу, но и, в то же время, достаточно короткого, чтобы жесткий диск не заполнялся незавершенными файлами, загрузка которых не будет закончена.

  • Schedule Cleanup (Назначение очистки). Назначает периодически выполняемую задачу для проверки наличия незавершенных файлов. При нахождении незавершенного файла его дата сопоставляется со значением срока удаления в поле Delete Incomplete Jobs After (Удалять незавершенные задания после). Если файл старше этого значения, он удаляется, и задание отменяется.
  • Run Cleanup Now (Выполнить очистку сейчас). Немедленно запускает процесс очистки. В противном случае очистка выполняется так же, как и при выборе опции Schedule Cleanup.

Вкладка Server Extensions 2002 (Серверные расширения 2002)

Вкладка (см. рис. 2.18) доступна только на уровне сайта, если установлены серверные расширения FrontPage 2002 Server Extensions. По умолчанию при открытии вкладки появляется сообщение о том, что серверные расширения для данного веб-сайта не включены.

Рис. 2.18. Вкладка Server Extensions (Серверные расширения)

  1. В консоли IIS MMC выберите команду Action\All Tasks\Configure Server Extensions 2002 (Действие\Все задачи\Настройка Server Extensions 2002).
  2. Появится окно Internet Explorer с запросом входных данных. Введите аутентификационные данные с правами администратора.
  3. Откроется веб-сайт, для которого необходимо включить серверные расширения FrontPage Server Extensions 2002.
  4. Убедитесь, что в поле Administrator (Администратор) отображается нужная учетная запись, затем нажмите на кнопку Submit (Отправить).
  5. На веб-сайте Server Administration, открывшемся в окне браузера, настраиваются серверные расширения FrontPage Server Extensions.

После включения серверных расширений во вкладке отобразится кнопка Settings (Параметры), с помощью которой открывается веб-сайт Server Administration (Администрирование сервера).

Веб-сайт Server Administration (Администрирование сервера)

На веб-сайте Server Administration (Администрирование сервера) настраиваются серверные расширения FrontPage. При открытии вкладки Server Extensions 2002 (см. рис. 2.18) вы увидите кнопку Settings (Параметры); в консоли IIS MMC будут недоступны параметры конфигурации. Нажмите на кнопку Settings для перехода на сайт FrontPage Server Administration (Администрирование сервера FrontPage) (см. рис. 2.19). Сначала отобразится страница Change Configuration Settings (Изменить параметры конфигурации). В верхней части страницы расположены гиперссылки администрирования, с помощью которых осуществляется переход на страницу администрирования сайта и к справке.

Рис. 2.19. Страница Change Configuration Settings (Изменение параметров конфигурации) сайта FrontPage Server Administration (Администрирование сервера FrontPage)

Страница изменения параметров конфигурации

На странице Change Configuration Settings (Изменение параметров конфигурации) вы можете настроить общие параметры сайтов данного сервера. Для этого нужно быть членом локальной группы Administrators (Администраторы).

Enable Authoring (Включить авторизацию). Включенная опция указывает на использование клиентами FrontPage для отгрузки содержимого на свои веб-сайты. По умолчанию при установке Server Extensions 2002 данная опция включена. Ее отключение запретит авторам сайтов публиковать новое содержимое. Администратор может воспользоваться этой возможностью при управлении или обновлении содержимого, если на это время нужно запретить публикацию. С точки зрения безопасности опцию не следует включать для работающего сайта, за исключением времени, когда производится отгрузка содержимого на сайт.

Mail Settings (Параметры почты). Используется для настройки использования программой FrontPage служб электронной почты сервера. При настройке параметров SMTP указывается имя сервера SMTP или его IP-адрес. Нельзя указывать имя пользователя и пароль, поэтому убедитесь, что сервер принимает сообщения без запроса этих данных. С помощью опции настраиваются адреса From (От) и Reply (Ответ), кодировка сообщений и набор символов, если сервер электронной почты имеет другие настройки.

Performance Tuning (Настройка производительности). Серверные расширения FrontPage позволяют настраивать кэширование веб-сайтов. При большом количестве страниц и документов кэширование сокращает среднее время отклика сайта. Измените один из параметров для настройки размера кэша:

    Web-наборы. Позволяют распределять запросы по нескольким рабочим процессам в данном пуле приложений, достигая большего уровня производительности и надежности, поскольку приложение будет использовать несколько рабочих процессов, и ошибка в одном из них не повлияет на работу остальных. Параметр Maximum Number Of Worker Processes (Максимальное число рабочих процессов) устанавливает количество рабочих процессов в данном пуле приложений. Укажите любое значение от 1 до 4 000 000.

Предупреждение. Установка слишком большого числа рабочих процессов отрицательно скажется на производительности системы, поскольку каждый процесс занимает около 5 Мб памяти только при запуске. Имейте это в виду при указании максимального количества выполняемых на сервере рабочих процессов.
Вкладка Health (Состояние)

Во вкладке Health (Состояние) (см. рис. 2.25) настраиваются параметры, поддерживающие рабочее состояние данного пула приложений, и параметры обнаружения проблем.

Рис. 2.25. Вкладка Health (Состояние)

  • Enable Pinging (Включить пинг-запросы). Настраивает систему на периодическую отправку пинг-запросов рабочим процессам. Отсутствие ответа от рабочего процесс означает наличие в нем проблемы; IIS уничтожает данный процесс и вместо него создает новый. Укажите любое значение от 1 до 4 000 000 с.
  • Rap >Ниже приведено описание работы рассматриваемого процесса.
  1. В рабочем процессе возникает ошибка.
  2. IIS записывает событие о неожиданном завершении работы процесса в журнал приложений, указывает идентификационный номер процесса и код выхода.
  3. IIS перезапускает рабочий процесс автоматически при поступлении другого процесса.
  4. Действия повторяются до достижения порогового значения.
  5. По достижении порогового значения IIS записывает в журнал приложений событие об автоматическом отключении пула приложений из-за многократного возникновения ошибок.
  6. Все клиенты, использующие данный пул приложений, получат сообщение об ошибке 503 «Service Unavailable» («Служба недоступна»).
  7. Действия повторяются до тех пор, пока пул приложений не будет остановлен и перезагружен.

Временные пределы запуска и отключения. Рабочие процессы не уничтожаются сразу после остановки, им требуется какое-то время и для загрузки. Для остановки рабочего процесса ему отправляется запрос на аннулирование, затем отводится время для завершения текущих операций и выхода из очереди, и только потом процесс аннулируется. При рециркуляции созданный новый процесс готов приступить к работе еще до завершения старого процесса, чтобы не прерывать работу службы. Иногда рабочий процесс останавливается не до конца, или возникают проблемы при его запуске. Временные пределы используются для настройки периода времени, в течение которого IIS ожидает возникновения проблемы.

  • Startup Time Limit (Предел времени загрузки). Служит для настройки промежутка времени, в течение которого IIS ожидает запуск рабочего процесса. Укажите любой интервал времени от 1 до 4 000 000 с.
  • Shutdown Time Limit (Предел времени отключения). Служит для настройки промежутка времени, в течение которого IIS ожидает запланированное завершение рабочего процесса. Укажите любой интервал времени от 1 до 4 000 000 с.
Вкладка >Во вкладке Identity (Идентификация) (см. рис. 2.26) указывается учетная запись безопасности, используемая рабочим процессом в пуле приложений. По умолчанию рабочие процессы выполняются как сетевые службы (включена опция Network Service [Сетевая служба]) c ограниченными правами в операционной системе.

Рис. 2.26. Вкладка Identity (Идентификация)

Укажите способ идентификации, который будет использоваться рабочими процессами. Выберите определенную идентификацию или укажите учетную запись пользователя. Последний вариант представляет собой угрозу безопасности, поскольку учетные записи имеют расширенные права доступа к операционной системе.

  • Network Service (Сетевая служба). Параметр по умолчанию, являющийся наиболее безопасным и рекомендуемый для выполнения рабочих процессов. В этом случае невозможен непосредственный доступ рабочих процессов к операционной системе и управление ею.
  • Local Service (Локальная служба). Обеспечивает более широкий набор прав в операционной системе, чем предыдущая опция. Предоставляет право доступа к операционной системе, но запрещается доступ к объектам за пределами сервера. Запрещается и взаимодействие с рабочим столом.
  • Local System (Локальная система). Обеспечивает более широкий набор прав, чем Local Service (Локальная служба). На самом деле опция предоставляет права полного доступа ко всей системе.

Все три учетные записи входят в группу IIS_WPG, находящуюся в локальной системе, права на доступ к которой присваиваются процессам. Если рабочему процессу требуется больше прав, чем он имеет в настоящий момент, включите эти права для группы IIS_WPG. При настройке учетной записи для рабочего процесса убедитесь в том, что эта учетная запись является членом группы IIS_WPG.

  • Configurable (Настраиваемая). Указывает учетную запись, под которой будут выполняться рабочие процессы. Введите имя учетной записи или нажмите на кнопку Browse (Обзор) и выберите учетную запись в появившемся окне.

При запуске рабочий процесс имеет маркер доступа идентификации, на которую он настроен. При поступлении запроса от клиента для его обработки используется маркер доступа клиента. Это действие называется имперсонализацией и позволяет рабочим процессам выполняться с низким уровнем безопасности с одновременным выполнением операций на высоком уровне.

Настройка IIS 10,0 Tuning IIS 10.0

Службы IIS (IIS) 10,0 входит в состав Windows Server 2020. Internet Information Services (IIS) 10.0 is included with Windows Server 2020. В нем используется модель процессов, аналогичная версии IIS 8,5 и IIS 7,0. It uses a process model similar to that of IIS 8.5 and IIS 7.0. Веб-драйвер режима ядра (HTTP. sys) получает и маршрутизирует HTTP-запросы, а также выполняет запросы из кэша ответов. A kernel-mode web driver (http.sys) receives and routes HTTP requests, and satisfies requests from its response cache. Рабочие процессы регистрируются для подпространств URL-адресов, а HTTP. sys направляет запрос в соответствующий процесс (или набор процессов для пулов приложений). Worker processes register for URL subspaces, and http.sys routes the request to the appropriate process (or set of processes for application pools).

HTTP. sys отвечает за управление подключениями и обработку запросов. HTTP.sys is responsible for connection management and request handling. Запрос может быть обслужен из кэша HTTP. sys или передан рабочему процессу для дальнейшей обработки. The request can be served from the HTTP.sys cache or passed to a worker process for further handling. Можно настроить несколько рабочих процессов, что обеспечивает изоляцию по сниженным затратам. Multiple worker processes can be configured, which provides isolation at a reduced cost. Дополнительные сведения о том, как работает обработка запросов, см. на следующем рисунке. For more info on how request handling works, see the following figure:

HTTP. sys включает кэш ответов. HTTP.sys includes a response cache. Когда запрос соответствует записи в кэше ответов, HTTP. sys отправляет ответ кэша непосредственно из режима ядра. When a request matches an entry in the response cache, HTTP.sys sends the cache response directly from kernel mode. Некоторые платформы веб-приложений, такие как ASP.NET, предоставляют механизмы, позволяющие кэшировать любое динамическое содержимое в кэше в режиме ядра. Some web application platforms, such as ASP.NET, provide mechanisms to enable any dynamic content to be cached in the kernel-mode cache. Обработчик статических файлов в IIS 10,0 автоматически кэширует часто запрашиваемые файлы в HTTP. sys. The static file handler in IIS 10.0 automatically caches frequently requested files in http.sys.

Поскольку веб-сервер имеет компоненты режима ядра и пользовательского режима, оба компонента должны быть настроены для оптимальной производительности. Because a web server has kernel-mode and user-mode components, both components must be tuned for optimal performance. Поэтому Настройка IIS 10,0 для конкретной рабочей нагрузки включает в себя настройку следующих параметров: Therefore, tuning IIS 10.0 for a specific workload includes configuring the following:

HTTP. sys и связанный кэш режима ядра HTTP.sys and the associated kernel-mode cache

Рабочие процессы и IIS в пользовательском режиме, включая конфигурацию пула приложений. Worker processes and user-mode IIS, including the application pool configuration

Некоторые параметры настройки, влияющие на производительность Certain tuning parameters that affect performance

В следующих разделах описывается настройка аспектов служб IIS 10,0 в режиме ядра и в пользовательском режиме. The following sections discuss how to configure the kernel-mode and user-mode aspects of IIS 10.0.

Параметры режима ядра Kernel-mode settings

Параметры HTTP. sys, относящиеся к производительности, делятся на две основные категории: Управление кэшем, подключение и управление запросами. Performance-related HTTP.sys settings fall into two broad categories: cache management and connection and request management. Все параметры реестра хранятся в следующей записи реестра: All registry settings are stored under the following registry entry:

Примечание. Если служба HTTP уже запущена, необходимо перезапустить ее, чтобы изменения вступили в силу. Note If the HTTP service is already running, you must restart it for the changes to take effect.

Параметры управления кэшем Cache management settings

Одним из преимуществ, предоставляемых HTTP. sys, является кэш режима ядра. One benefit that HTTP.sys provides is a kernel-mode cache. Если ответ находится в кэше режима ядра, запрос HTTP можно полностью удовлетворить с помощью режима ядра, что значительно снижает стоимость ЦП при обработке запроса. If the response is in the kernel-mode cache, you can satisfy an HTTP request entirely from the kernel mode, which significantly lowers the CPU cost of handling the request. Однако кэш служб IIS 10,0 в режиме ядра основан на физической памяти, а стоимость записи — это объем памяти, который она занимает. However, the kernel-mode cache of IIS 10.0 is based on physical memory, and the cost of an entry is the memory that it occupies.

Запись в кэше полезна только при использовании. An entry in the cache is helpful only when it is used. Однако запись всегда потребляет физическую память независимо от того, используется ли запись. However, the entry always consumes physical memory, whether or not the entry is being used. Необходимо оценить полезность элемента в кэше (экономия от возможности его обслуживания из кэша) и затраты (занимаемая физической памятью) в течение времени существования записи, учитывая доступные ресурсы (ЦП и физическая память) и рабочую нагрузку. необходимость. You must evaluate the usefulness of an item in the cache (the savings from being able to serve it from the cache) and its cost (the physical memory occupied) over the lifetime of the entry by considering the available resources (CPU and physical memory) and the workload requirements. HTTP. sys пытается использовать в кэше только полезные, активно доступные элементы, но можно повысить производительность веб-сервера, настроив кэш HTTP. sys для определенных рабочих нагрузок. HTTP.sys tries to keep only useful, actively accessed items in the cache, but you can increase the performance of the web server by tuning the HTTP.sys cache for particular workloads.

Ниже приведены некоторые полезные параметры для кэша режима ядра HTTP. sys. The following are some useful settings for the HTTP.sys kernel-mode cache:

Уриенаблекаче Значение по умолчанию: 1 UriEnableCache Default value: 1

Ненулевое значение включает ответ в режиме ядра и кэширование фрагментов. A non-zero value enables the kernel-mode response and fragment caching. Для большинства рабочих нагрузок кэш должен оставаться включенным. For most workloads, the cache should remain enabled. Рекомендуется отключить кэш, если предполагается очень низкий отклик и кэширование фрагментов. Consider disabling the cache if you expect a very low response and fragment caching.

Уримакскачемегабитекаунт Значение по умолчанию: 0 UriMaxCacheMegabyteCount Default value: 0

Ненулевое значение, указывающее максимальный объем памяти, доступный кэшу режима ядра. A non-zero value that specifies the maximum memory that is available to the kernel-mode cache. Значение по умолчанию 0 позволяет системе автоматически настраивать объем памяти, доступной для кэша. The default value, 0, enables the system to automatically adjust how much memory is available to the cache.

Примечание . Задание размера устанавливает только максимальное значение, и система может не дорастить размер кэша до максимального размера. Note Specifying the size sets only the maximum, and the system might not let the cache grow to the maximum set size.

Уримаксурибитес Значение по умолчанию: 262144 байт (256 КБ) UriMaxUriBytes Default value: 262144 bytes (256 KB)

Максимальный размер записи в кэше режима ядра. The maximum size of an entry in the kernel-mode cache. Ответы или фрагменты, превышающие этот, не кэшируются. Responses or fragments larger than this are not cached. При наличии достаточного объема памяти рекомендуется увеличить это ограничение. If you have enough memory, consider increasing the limit. Если память ограничена, а большие записи кровдинг меньше, может оказаться полезным уменьшить это ограничение. If memory is limited and large entries are crowding out smaller ones, it might be helpful to lower the limit.

Урискавенжерпериод Значение по умолчанию: 120 секунд UriScavengerPeriod Default value: 120 seconds

Кэш HTTP. sys периодически сканируется средством очистки, а записи, к которым нет доступа между проверками очистки, удаляются. The HTTP.sys cache is periodically scanned by a scavenger, and entries that are not accessed between scavenger scans are removed. Установка для периода очистки большого значения сокращает число просмотров очистки. Setting the scavenger period to a high value reduces the number of scavenger scans. Однако использование памяти кэша может увеличиться из-за более старых, менее часто запрашиваемых записей может остаться в кэше. However, the cache memory usage might increase because older, less frequently accessed entries can remain in the cache. Установка слишком низкого периода приводит к более частому сканированию очистки и может привести к чрезмерному увеличению количества операций очистки и кэширования. Setting the period too low causes more frequent scavenger scans, and it can result in too many flushes and cache churn.

Параметры управления запросами и соединениями Request and connection management settings

В Windows Server 2020 протокол HTTP. sys управляет подключениями автоматически. In Windows Server 2020, HTTP.sys manages connections automatically. Следующие параметры реестра больше не используются: The following registry settings are no longer used:

MaxConnections MaxConnections

идлеконнектионшигхмарк IdleConnectionsHighMark

идлеконнектионсловмарк IdleConnectionsLowMark

идлелисттриммерпериод IdleListTrimmerPeriod

рекуестбуфферлукасидедепс RequestBufferLookasideDepth

интерналрекуестлукасидедепс InternalRequestLookasideDepth

Параметры пользовательского режима User-mode settings

Параметры в этом разделе влияют на поведение рабочего процесса ИИСÂ 10,0. The settings in this section affect the IISÂ 10.0 worker process behavior. Большинство этих параметров можно найти в следующем XML-файле конфигурации: Most of these settings can be found in the following XML configuration file:

% SystemRoot% \system32 @ no__t-1inetsrv @ no__t-2config @ no__t-3applicationHost. config %SystemRoot%\system32\inetsrv\config\applicationHost.config

Чтобы изменить их, используйте Appcmd. exe, консоль управления IIS 10,0, командлеты Иисадминистратион PowerShell. Use Appcmd.exe, the IIS 10.0 Management Console, the WebAdministration or IISAdministration PowerShell Cmdlets to change them. Большинство параметров обнаруживаются автоматически и не требует перезапуска рабочих процессов IIS 10,0 или сервера веб-приложений. Most settings are automatically detected, and they do not require a restart of the IIS 10.0 worker processes or web application server. Дополнительные сведения о файле applicationHost. config см. в разделе Введение в файл ApplicationHost. config. For more info about the applicationHost.config file, see Introduction to ApplicationHost.config.

Идеальный параметр ЦП для оборудования NUMA Ideal CPU setting for NUMA hardware

Начиная с Windows 2020, IIS 10,0 поддерживает автоматическое идеальное назначение ЦП для потоков пула потоков, чтобы повысить производительность и масштабируемость оборудования NUMA. Starting from Windows 2020, IIS 10.0 supports automatic ideal CPU assignment for its thread pool threads to enhance the performance and scalability on NUMA hardware. Эта функция включена по умолчанию и может быть настроена с помощью следующего раздела реестра: This feature is enabled by default and can be configured through the following registry key:

Если эта функция включена, диспетчер потоков IIS предоставляет лучшие усилия для равномерного распределения потоков пула потоков IIS по всем ЦП во всех узлах NUMA на основе их текущих нагрузок. With this feature enabled, IIS thread manager makes its best effort to evenly distribute IIS thread pool threads across all CPUs in all NUMA nodes based on their current loads. Как правило, рекомендуется не изменять этот параметр по умолчанию для оборудования NUMA. In general, it is recommended to keep this default setting unchanged for NUMA hardware.

Примечание идеальный параметр ЦП отличается от параметров назначения узлов NUMA рабочего процесса (Нуманодеассигнмент и нуманодеаффинитимоде), введенных в параметрах ЦП для пула приложений. Note The ideal CPU setting is different from the worker process NUMA node assignment settings (numaNodeAssignment and numaNodeAffinityMode) introduced in CPU Settings for an Application Pool. Идеальный параметр ЦП влияет на то, как IIS распространяет потоки пула потоков, а параметры назначения узлов NUMA рабочего процесса определяют, на каком узле NUMA запускается рабочий процесс. The ideal CPU setting affects how IIS distributes its thread pool threads, while the worker process NUMA node assignment settings determine on which NUMA node a worker process starts.

Параметры поведения кэша пользовательского режима User-mode cache behavior settings

В этом разделе описываются параметры, влияющие на поведение кэширования в ИИСÂ 10,0. This section describes the settings that affect caching behavior in IISÂ 10.0. Кэш пользовательского режима реализуется как модуль, который прослушивает события глобального кэширования, создаваемые интегрированным конвейером. The user-mode cache is implemented as a module that listens to the global caching events that are raised by the integrated pipeline. Чтобы полностью отключить кэш пользовательского режима, удалите модуль Филекачемодуле (качфиле. dll) из списка установленных модулей в разделе конфигурации System. Web Server или Глобалмодулес в файле applicationHost. config. To completely disable the user-mode cache, remove the FileCacheModule (cachfile.dll) module from the list of installed modules in the system.webServer/globalModules configuration section in applicationHost.config.

System .ING Server/Caching system.webServer/caching

Атрибут Attribute Описание Description Значение по умолчанию Default
Enabled Enabled Отключает кэш IIS пользовательского режима при установке значения false. Disables the user-mode IIS cache when set to False. Если коэффициент попадания в кэш очень мал, можно полностью отключить кэш, чтобы избежать издержек, связанных с путем к коду кэша. When the cache hit rate is very small, you can disable the cache completely to avoid the overhead that is associated with the cache code path. Отключение кэша пользовательского режима не отключает кэш режима ядра. Disabling the user-mode cache does not disable the kernel-mode cache. True True
енаблекернелкаче enableKernelCache Отключает кэш режима ядра при установке значения false. Disables the kernel-mode cache when set to False. True True
макскачесизе maxCacheSize Ограничивает размер кэша пользовательского режима IIS указанным размером в мегабайтах. Limits the IIS user-mode cache size to the specified size in Megabytes. Службы IIS настраивают значение по умолчанию в зависимости от доступной памяти. IIS adjusts the default depending on available memory. Тщательно выбирайте значение в зависимости от размера набора часто используемых файлов по сравнению с объемом ОЗУ или адресным пространством процесса IIS. Choose the value carefully based on the size of the set of frequently accessed files versus the amount of RAM or the IIS process address space. 0 0
максреспонсесизе maxResponseSize Кэширует файлы вплоть до указанного размера. Caches files up to the specified size. Фактическое значение зависит от числа и размера самого большого файла в наборе данных, а также от объема доступной оперативной памяти. The actual value depends on the number and size of the largest files in the data set versus the available RAM. Кэширование больших и часто запрашиваемых файлов может снизить загрузку ЦП, доступ к диску и связанные с ними задержки. Caching large, frequently requested files can reduce CPU usage, disk access, and associated latencies. 262144 262144

Параметры поведения сжатия Compression behavior settings

IIS, начиная с 7,0, по умолчанию сжимает статическое содержимое. IIS starting from 7.0 compresses static content by default. Кроме того, сжатие динамического содержимого включается по умолчанию при установке Динамиккомпрессионмодуле. Also, compression of dynamic content is enabled by default when the DynamicCompressionModule is installed. Сжатие сокращает использование пропускной способности, но увеличивает загрузку ЦП. Compression reduces bandwidth usage but increases CPU usage. Если это возможно, сжатое содержимое кэшируется в кэше режима ядра. Compressed content is cached in the kernel-mode cache if possible. Начиная с 8,5, службы IIS позволяют управлять сжатием независимо для статического и динамического содержимого. Starting from 8.5, IIS lets compression be controlled independently for static and dynamic content. Статическое содержимое обычно относится к содержимому, которое не изменяется, например GIF-или HTM-файлы. Static content typically refers to content that does not change, such as GIF or HTM files. Динамическое содержимое обычно создается скриптами или кодом на сервере, то есть ASP.NET страницами. Dynamic content is typically generated by scripts or code on the server, that is, ASP.NET pages. Классификацию любого конкретного расширения можно настроить как статический или динамический. You can customize the classification of any particular extension as static or dynamic.

Чтобы полностью отключить сжатие, удалите Статиккомпрессионмодуле и Динамиккомпрессионмодуле из списка модулей в разделе System. Web Server/Глобалмодулес в файле applicationHost. config. To completely disable compression, remove StaticCompressionModule and DynamicCompressionModule from the list of modules in the system.webServer/globalModules section in applicationHost.config.

System. Хттпкомпрессион/ system.webServer/httpCompression

Атрибут Attribute Описание Description Значение по умолчанию Default
Статиккомпрессион — Енаблекпуусаже staticCompression-EnableCpuUsage

Статиккомпрессион — Дисаблекпуусаже staticCompression-DisableCpuUsage

Динамиккомпрессион — Енаблекпуусаже dynamicCompression-EnableCpuUsage

Динамиккомпрессион — Дисаблекпуусаже dynamicCompression-DisableCpuUsage

Включает или отключает сжатие, если текущая процентная загрузка ЦП превышает или ниже указанных пределов. Enables or disables compression if the current percentage CPU usage goes above or below specified limits.

Начиная с IIS 7,0, сжатие автоматически отключается, если ЦП стабильного состояния превышает пороговое значение отключения. Starting with IIS 7.0, compression is automatically disabled if steady-state CPU increases above the disable threshold. Сжатие включается, если ЦП падает ниже порога включения. Compression is enabled if CPU drops below the enable threshold.

50, 100, 50 и 90 соответственно 50, 100, 50, and 90 respectively
Каталоги directory Указывает каталог, в котором временно хранятся и кэшируются сжатые версии статических файлов. Specifies the directory in which compressed versions of static files are temporarily stored and cached. Рекомендуется переместить этот каталог на системный диск, если к нему часто обращаются. Consider moving this directory off the system drive if it is accessed frequently. %Системдриве%\инетпуб\темп\иис временные сжатые файлы %SystemDrive%\inetpub\temp\IIS Temporary Compressed Files
додискспацелимитинг doDiskSpaceLimiting Указывает, существует ли ограничение на количество места на диске, которое может занимать все сжатые файлы. Specifies whether a limit exists for how much disk space all compressed files can occupy. Сжатые файлы хранятся в каталоге сжатия, указанном атрибутом Directory . Compressed files are stored in the compression directory that is specified by the directory attribute. True True
максдискспацеусаже maxDiskSpaceUsage Указывает число байтов дискового пространства, которое может занимать сжатые файлы в каталоге сжатия. Specifies the number of bytes of disk space that compressed files can occupy in the compression directory.

Этот параметр может потребоваться увеличиться, если общий размер всех сжатых содержимого слишком велик. This setting might need to be increased if the total size of all compressed content is too large.

100 МБ 100 MB

System. urlCompression/ system.webServer/urlCompression

Атрибут Attribute Описание Description Значение по умолчанию Default
достатиккомпрессион doStaticCompression Указывает, следует ли сжимать статическое содержимое. Specifies whether static content is compressed. True True
додинамиккомпрессион doDynamicCompression Указывает, следует ли сжимать динамическое содержимое. Specifies whether dynamic content is compressed. True True

Примечание . Для серверов, использующих IIS 10,0 с низкой средней загрузкой ЦП, рассмотрите возможность включения сжатия для динамического содержимого, особенно если ответы велики. Note For servers running IIS 10.0 that have low average CPU usage, consider enabling compression for dynamic content, especially if responses are large. Сначала следует сделать это в тестовой среде, чтобы оценить воздействие на загрузку ЦП из базовых показателей. This should first be done in a test environment to assess the effect on the CPU usage from the baseline.

Настройка списка документов по умолчанию Tuning the default document list

Модуль документов по умолчанию обрабатывает HTTP-запросы к корню каталога и преобразует их в запросы для определенного файла, например Default. htm или index. htm. The default document module handles HTTP requests for the root of a directory and translates them into requests for a specific file, such as Default.htm or Index.htm. В среднем Араундâ 25% всех запросов в Интернете проходит по пути к документу по умолчанию. On average, around 25 percent of all requests on the Internet go through the default document path. Это существенно различается для отдельных сайтов. This varies significantly for individual sites. Если HTTP-запрос не указывает имя файла, модуль документов по умолчанию выполняет поиск по списку допустимых документов по умолчанию для каждого имени в файловой системе. When an HTTP request does not specify a file name, the default document module searches the list of allowed default documents for each name in the file system. Это может негативно сказаться на производительности, особенно если достижение содержимого требует приема сетевого пути или прикосновения к диску. This can adversely affect performance, especially if reaching the content requires making a network round trip or touching a disk.

Можно избежать дополнительной нагрузки путем выборочного отключения документов по умолчанию, а также путем уменьшения или упорядочения списка документов. You can avoid the overhead by selectively disabling default documents and by reducing or ordering the list of documents. Для веб-сайтов, использующих документ по умолчанию, следует сократить список до используемых типов документов по умолчанию. For websites that use a default document, you should reduce the list to only the default document types that are used. Кроме того, следует упорядочить список, чтобы он начинался с наиболее часто запрашиваемого имени файла документа по умолчанию. Additionally, order the list so that it begins with the most frequently accessed default document file name.

Можно выборочно задать поведение документов по умолчанию для определенных URL-адресов, настроив конфигурацию внутри тега location в файле applicationHost. config или вставив файл Web. config непосредственно в каталог содержимого. You can selectively set the default document behavior on particular URLs by customizing the configuration inside a location tag in applicationHost.config or by inserting a web.config file directly in the content directory. Это позволяет применять гибридный подход, который позволяет документам по умолчанию только там, где это необходимо, и присваивает списку правильное имя файла для каждого URL-адреса. This allows a hybrid approach, which enables default documents only where they are necessary and sets the list to the correct file name for each URL.

Чтобы полностью отключить документы по умолчанию, удалите Дефаултдокументмодуле из списка модулей в разделе System. Web Server/Глобалмодулес в файле applicationHost. config. To disable default documents completely, remove DefaultDocumentModule from the list of modules in the system.webServer/globalModules section in applicationHost.config.

System. Server/defaultDocument system.webServer/defaultDocument

Атрибут Attribute Описание Description Значение по умолчанию Default
enabled enabled Указывает, что документы по умолчанию включены. Specifies that default documents are enabled. True True
элемент element Указывает имена файлов, которые настроены в качестве документов по умолчанию. Specifies the file names that are configured as default documents. По умолчанию используется список Default. htm, Default. ASP, index. htm, index. HTML, iisstart. htm и Default. aspx. The default list is Default.htm, Default.asp, Index.htm, Index.html, Iisstart.htm, and Default.aspx.

Централизованное ведение журнала в двоичном формате Central binary logging

Когда сеанс сервера содержит множество групп URL-адресов, процесс создания сотен форматированных файлов журналов для отдельных групп URL-адресов и записи данных журнала на диск может быстро потреблять ценные ресурсы ЦП и памяти, тем самым создавая производительность и проблемы масштабируемости. When the server session has numerous URL groups under it, the process of creating hundreds of formatted log files for individual URL groups and writing the log data to a disk can quickly consume valuable CPU and memory resources, thereby creating performance and scalability issues. Централизованное ведение журнала в двоичном формате уменьшает объем системных ресурсов, используемых для ведения журнала, в то же время предоставляя подробные данные журналов для организаций, которым он необходим. Centralized binary logging minimizes the amount of system resources that are used for logging, while at the same time providing detailed log data for organizations that require it. Для анализа журналов в двоичном формате требуется средство последующей обработки. Parsing binary-format logs requires a post-processing tool.

Вы можете включить централизованное ведение журнала в двоичном формате, установив для атрибута Централлогфилемоде значение Централбинари и установив для атрибута Enabled значение true. You can enable central binary logging by setting the centralLogFileMode attribute to CentralBinary and setting the enabled attribute to True. Рассмотрите возможность перемещения центрального файла журнала из системного раздела и на выделенный диск журнала, чтобы избежать конфликтов между действиями системы и действиями ведения журнала. Consider moving the location of the central log file off the system partition and onto a dedicated logging drive to avoid contention between system activities and logging activities.

System. applicationHost/журнал system.applicationHost/log

Атрибут Attribute Описание Description Значение по умолчанию Default
централлогфилемоде centralLogFileMode Задает режим ведения журнала для сервера. Specifies the logging mode for a server. Измените это значение на Централбинари, чтобы включить централизованное ведение журнала в двоичном формате. Change this value to CentralBinary to enable central binary logging. Сайт Site

System. applicationHost/log/Централбинарилогфиле system.applicationHost/log/centralBinaryLogFile

Атрибут Attribute Описание Description Значение по умолчанию Default
enabled enabled Указывает, включено ли централизованное ведение журнала в двоичном формате. Specifies whether central binary logging is enabled. False False
Каталоги directory Указывает каталог, в который записываются записи журнала. Specifies the directory where log entries are written. %системдриве%\инетпуб\логс\логфилес %SystemDrive%\inetpub\logs\LogFiles

Настройки приложений и сайтов Application and site tunings

Следующие параметры относятся к настройкам пула приложений и сайта. The following settings relate to application pool and site tunings.

System. applicationHost/Аппликатионпулс/Аппликатионпулдефаултс system.applicationHost/applicationPools/applicationPoolDefaults

Атрибут Attribute Описание Description Значение по умолчанию Default
queueLength queueLength Указывает HTTP. sys количество запросов, поставленных в очередь для пула приложений до отклонения будущих запросов. Indicates to HTTP.sys how many requests are queued for an application pool before future requests are rejected. При превышении значения этого свойства IIS отклоняет последующие запросы с ошибкой 503. When the value for this property is exceeded, IIS rejects subsequent requests with a 503 error.

Попробуйте увеличить это для приложений, взаимодействующих с серверными хранилищами данных с высокой задержкой, если наблюдаются ошибки 503. Consider increasing this for applications that communicate with high-latency back-end data stores if 503 errors are observed.

1000 1000
enable32BitAppOnWin64 enable32BitAppOnWin64 Если значение — true, позволяет запускать 32-разрядное приложение на компьютере с 64-разрядным процессором. When True, enables a 32-bit application to run on a computer that has a 64-bit processor.

Рассмотрите возможность включения 32-разрядного режима, если использование памяти является важным фактором. Consider enabling 32-bit mode if memory consumption is a concern. Так как размеры указателей и размеры команд меньше, 32-разрядные приложения используют меньше памяти, чем 64-разрядные приложения. Because pointer sizes and instruction sizes are smaller, 32-bit applications use less memory than 64-bit applications. Недостаток выполнения 32-разрядных приложений на 64-разрядном компьютере состоит в том, что адресное пространство пользовательского режима ограничено 4 ГБ. The drawback to running 32-bit applications on a 64-bit computer is that user-mode address space is limited to 4 GB.

False False

System. applicationHost/Sites/Виртуалдиректоридефаулт system.applicationHost/sites/VirtualDirectoryDefault

Атрибут Attribute Описание Description Значение по умолчанию Default
алловсубдирконфиг allowSubDirConfig Указывает, будет ли IIS искать файлы Web. config в каталогах содержимого ниже текущего уровня (true) или не искать файлы Web. config в каталогах содержимого ниже текущего уровня (false). Specifies whether IIS looks for web.config files in content directories lower than the current level (True) or does not look for web.config files in content directories lower than the current level (False). Установления простое ограничение, которое допускает настройку только в виртуальных каталогах, ИИСÂ 10,0 может быть уверенным в том, что, если / @ no__t-2name>.htm не является виртуальным каталогом, он не должен искать файл конфигурации. By imposing a simple limitation, which allows configuration only in virtual directories, IISÂ 10.0 can know that, unless / .htm is a virtual directory, it should not look for a configuration file. Пропуск дополнительных файловых операций может значительно повысить производительность веб-сайтов, имеющих очень большой набор статических содержимого со случайным доступом. Skipping the additional file operations can significantly improve performance of websites that have a very large set of randomly accessed static content. True True

Управление модулями IIS 10,0 Managing IIS 10.0 modules

Службы IIS 10,0 были разделены на несколько расширяемых пользователем модулей для поддержки модульной структуры. IIS 10.0 has been factored into multiple, user-extensible modules to support a modular structure. Эта разложение имеет небольшую стоимость. This factorization has a small cost. Для каждого модуля интегрированный конвейер должен вызывать модуль для каждого события, относящегося к модулю. For each module the integrated pipeline must call the module for every event that is relevant to the module. Это происходит независимо от того, должен ли модуль выполнять какие – либо действия. This happens regardless of whether the module must do any work. Вы можете экономить циклы ЦП и память, удалив все модули, которые не относятся к конкретному веб-сайту. You can conserve CPU cycles and memory by removing all modules that are not relevant to a particular website.

Веб-сервер, настроенный для простых статических файлов, может включать только следующие пять модулей: Урикачемодуле, Хттпкачемодуле, StaticFileModule, Анонимаусаусентикатионмодуле и Хттплоггингмодуле. A web server that is tuned for simple static files might include only the following five modules: UriCacheModule, HttpCacheModule, StaticFileModule, AnonymousAuthenticationModule, and HttpLoggingModule.

Чтобы удалить модули из файла applicationHost. config, удалите все ссылки на модуль из раздела System. Web Server/обработчики и System. Web Server/modules в дополнение к удалению объявления модуля в System. Web Server/Глобалмодулес. To remove modules from applicationHost.config, remove all references to the module from the system.webServer/handlers and system.webServer/modules sections in addition to removing the module declaration in system.webServer/globalModules.

Параметры классической модели ASP Classic ASP settings

Основная стоимость обработки классического запроса ASP включает инициализацию обработчика скриптов, компиляцию запрошенного скрипта ASP в шаблон ASP и выполнение шаблона в обработчике сценариев. The major cost of processing a classic ASP request includes initializing a script engine, compiling the requested ASP script into an ASP template, and executing the template on the script engine. Хотя стоимость выполнения шаблона зависит от сложности запрошенного скрипта ASP, ASP-модуль IIS может кэшировать обработчики сценариев в памяти и шаблонах кэша в памяти и на диске (только в случае, если избыточные потоки шаблонов в памяти) для повышения производительности в Сценарии, связанные с ЦП. While the template execution cost depends on the complexity of the requested ASP script, IIS classic ASP module can cache script engines in memory and cache templates in both memory and disk (only if in-memory template cache overflows) to boost performance in CPU-bound scenarios.

Следующие параметры используются для настройки кэша шаблона классической модели ASP и кэша обработчика скриптов, а также не влияют на параметры ASP.NET. The following settings are used to configure the classic ASP template cache and script engine cache, and they do not affect ASP.NET settings.

System. Server/ASP/Cache system.webServer/asp/cache

Атрибут Attribute Описание Description Значение по умолчанию Default
дисктемплатекачедиректори diskTemplateCacheDirectory Имя каталога, используемого ASP для хранения скомпилированных шаблонов при переполняется кэшем в памяти. The name of the directory that ASP uses to store compiled templates when the in-memory cache overflows.

Рекомендация. Укажите каталог, который не используется интенсивно, например диск, который не является общим для операционной системы, журнала IIS или другого часто используемого содержимого. Recommendation: Set to a directory that is not heavily used, for example, a drive that is not shared with the operating system, IIS log, or other frequently accessed content.

%Системдриве%\инетпуб\темп\асп скомпилированные шаблоны %SystemDrive%\inetpub\temp\ASP Compiled Templates
максдисктемплатекачефилес maxDiskTemplateCacheFiles Указывает максимальное количество скомпилированных шаблонов ASP, которые могут быть кэшированы на диске. Specifies the maximum number of compiled ASP templates that can be cached on disk.

Рекомендация. Задайте максимальное значение 0x7FFFFFFF. Recommendation: Set to the maximum value of 0x7FFFFFFF.

2000 2000
скриптфилекачесизе scriptFileCacheSize Этот атрибут указывает максимальное количество скомпилированных шаблонов ASP, которые могут быть кэшированы в памяти. This attribute specifies the maximum number of compiled ASP templates that can be cached in memory.

Рекомендация. Задайте по меньшей мере количество часто запрашиваемых скриптов ASP, обслуживаемых пулом приложений. Recommendation: Set to at least as many as the number of frequently-requested ASP scripts served by an application pool. Если это возможно, задайте для параметра значение столько шаблонов ASP, сколько разрешено памяти. If possible, set to as many ASP templates as memory limits allow.

500 500
скриптенгинекачемакс scriptEngineCacheMax Указывает максимальное число обработчиков сценариев, которые будут хранить кэшированные в памяти. Specifies the maximum number of script engines that will keep cached in memory.

Рекомендация. Задайте по меньшей мере количество часто запрашиваемых скриптов ASP, обслуживаемых пулом приложений. Recommendation: Set to at least as many as the number of frequently-requested ASP scripts served by an application pool. Если это возможно, задайте для параметра значение, равное количеству обработчиков скриптов, если разрешено ограничение памяти. If possible, set to as many script engines as the memory limit allows.

250 250

System. Server/ASP/limits system.webServer/asp/limits

Атрибут Attribute Описание Description Значение по умолчанию Default
процессорсреадмакс processorThreadMax Указывает максимальное число рабочих потоков, которые может создать ASP на каждый процессор. Specifies the maximum number of worker threads per processor that ASP can create. Увеличьте, если текущий параметр недостаточен для обработки нагрузки, что может вызвать ошибки при обработке запросов или вызвать нехватку ресурсов ЦП. Increase if the current setting is insufficient to handle the load, which can cause errors when it is serving requests or cause under-usage of CPU resources. 25 25

System. Server/ASP/comPlus system.webServer/asp/comPlus

Атрибут Attribute Описание Description Значение по умолчанию Default
ексекутеинмта executeInMta Задайте значение true , если ошибки или сбои обнаруживаются в то время, когда IIS обслуживает содержимое ASP. Set to True if errors or failures are detected while IIS is serving ASP content. Это может произойти, например, при размещении нескольких изолированных сайтов, в которых каждый сайт работает под своим рабочим процессом. This can occur, for example, when hosting multiple isolated sites in which each site runs under its own worker process. Ошибки обычно выводятся из COM+ в Просмотр событий. Errors are typically reported from COM+ in the Event Viewer. Этот параметр включает модель многопоточного апартамента в ASP. This setting enables the multi-threaded apartment model in ASP. False False

Параметр параллелизма ASP.NET ASP.NET concurrency setting

ASP.NET 3,5 ASP.NET 3.5

По умолчанию ASP.NET ограничивает параллелизм запросов для уменьшения потребления памяти стабильного состояния на сервере. By default, ASP.NET limits request concurrency to reduce steady-state memory consumption on the server. Приложениям с высоким уровнем параллелизма может потребоваться изменить некоторые параметры, чтобы повысить общую производительность. High concurrency applications might need to adjust some settings to improve overall performance. Этот параметр можно изменить в файле aspnet. config: You can change this setting in aspnet.config file:

Следующий параметр полезен для полного использования ресурсов в системе: The following setting is useful to fully use resources on a system:

максконкуррентрекуестперкпу Значение по умолчанию: 5000 maxConcurrentRequestPerCpu Default value: 5000

Этот параметр ограничивает максимальное количество одновременно выполняемых запросов ASP.NET в системе. This setting limits the maximum number of concurrently executing ASP.NET requests on a system. Значение по умолчанию — консервативно, чтобы сократить потребление памяти ASP.NET приложениями. The default value is conservative to reduce memory consumption of ASP.NET applications. Рекомендуется увеличить это ограничение в системах, где работают приложения, выполняющие длительные синхронные операции ввода-вывода. Consider increasing this limit on systems that run applications that perform long, synchronous I/O operations. В противном случае пользователи могут столкнуться с высокой задержкой из-за превышения ограничений очереди при высокой нагрузке при использовании параметра по умолчанию. Otherwise, users can experience high latency because of queuing or request failures due to exceeding queue limits under a high load when the default setting is used.

ASP.NET 4,6 ASP.NET 4.6

Помимо параметра Максконкуррентрекуестперкпу, ASP.NET 4,7 также предоставляет параметры для повышения производительности приложений, которые сильно полагаются на асинхронные операции. Besides the maxConcurrentRequestPerCpu setting, ASP.NET 4.7 also provides settings to improve the performance in the applications which heavily rely on asynchronous operation. Параметр можно изменить в файле aspnet. config. The setting can be changed in aspnet.config file.

  • перценткпулимит Значение по умолчанию: 90. асинхронный запрос имеет некоторые проблемы с масштабируемостью, возникающие при наличии большой нагрузки (помимо аппаратных возможностей) в таком сценарии. percentCpuLimit Default value: 90 Asynchronous request has some scalability issues when a huge load (beyond the hardware capabilities) is put on such scenario. Проблема обусловлена характером выделения в асинхронных сценариях. The problem is due to the nature of allocation on asynchronous scenarios. В этих условиях выделение будет выполняться при запуске асинхронной операции и будет использоваться после ее завершения. In these conditions, allocation will happen when the asynchronous operation starts, and it will be consumed when it completes. По истечении этого времени итâс объекты были перемещены в поколение 1 или 2 с помощью GC. By that time, it’s very possible the objects have been moved to generation 1 or 2 by GC. В этом случае увеличение нагрузки будет показывать увеличение числа запросов в секунду до точки. When this happens, increasing the load will show increase on request per second (rps) until a point. Когда мы передаем эту точку, время, затраченное на GC, начнет стать проблемой, а RP начнется на DIP, при отрицательном результате масштабирования. Once we pass that point, the time spent in GC will start to become a problem and the rps will start to dip, having a negative scaling effect. Чтобы устранить проблему, когда загрузка ЦП превысит значение параметра Перценткпулимит, запросы будут отправляться в собственную очередь ASP.NET. To fix the problem, when the cpu usage exceeds percentCpuLimit setting, requests will be sent to the ASP.NET native queue.
  • перценткпулимитминактиверекуестперкпу Значение по умолчанию: 100. регулирование ЦП (параметр Перценткпулимит) не основано на количестве запросов, но на том, насколько дорогие они. percentCpuLimitMinActiveRequestPerCpu Default value: 100 CPU throttling(percentCpuLimit setting) is not based on number of requests but on how expensive they are. В результате может быть всего несколько ресурсоемких запросов, вызывающих резервное копирование в собственной очереди без возможности его очистки от входящих запросов. As a result, there could be just a few CPU-intensive requests causing a backup in the native queue with no way to empty it aside from incoming requests. Чтобы решить эту проблме, Перценткпулимитминактиверекуестперкпу можно использовать, чтобы гарантировать, что минимальное количество запросов будет обслуживаться до начала регулирования в. To solve this problme, percentCpuLimitMinActiveRequestPerCpu can be used to ensure a minimum number of requests are being served before throttling kicks in.

Параметры рабочего процесса и повторного запуска Worker process and recycling options

Можно настроить параметры для перезапуска рабочих процессов IIS и предоставить практичные решения для акутом ситуаций или событий без необходимости вмешательства или сброса службы или компьютера. You can configure options for recycling IIS worker processes and provide practical solutions to acute situations or events without requiring intervention or resetting a service or computer. К таким ситуациям и событиям относятся утечки памяти, увеличение нагрузки на память, неотвечающие и неактивные рабочие процессы. Such situations and events include memory leaks, increasing memory load, or unresponsive or idle worker processes. В обычных условиях могут не требоваться параметры повторного запуска, а перезапуск можно отключить, а система может быть настроена на повторный запуск очень редко. Under ordinary conditions, recycling options might not be needed and recycling can be turned off or the system can be configured to recycle very infrequently.

Вы можете включить перезапуск процесса для конкретного приложения, добавив атрибуты в элемент утилизация или периодикрестарт . You can enable process recycling for a particular application by adding attributes to the recycling/periodicRestart element. Событие очистки может инициироваться несколькими событиями, включая использование памяти, фиксированное количество запросов и фиксированный период времени. The recycle event can be triggered by several events including memory usage, a fixed number of requests, and a fixed time period. При перезапуске рабочего процесса запросы, поставленные в очередь и выполняющиеся, преобразуются, а новый процесс одновременно запускается для обслуживания новых запросов. When a worker process is recycled, the queued and executing requests are drained, and a new process is simultaneously started to service new requests. Элемент » Утилизация/периодикрестарт » предназначен для каждого приложения. Это означает, что каждый атрибут в следующей таблице секционирован отдельно для каждого приложения. The recycling/periodicRestart element is per-application, which means that each attribute in the following table is partitioned on a per-application basis.

System. applicationHost/Аппликатионпулс/Аппликатионпулдефаултс/перезапуск/Периодикрестарт system.applicationHost/applicationPools/ApplicationPoolDefaults/recycling/periodicRestart

Атрибут Attribute Описание Description Значение по умолчанию Default
memory. memory Включить перезапуск процесса, если потребление виртуальной памяти превышает заданное ограничение в килобайтах. Enable process recycling if virtual memory consumption exceeds the specified limit in kilobytes. Это полезное значение для 32-разрядных компьютеров с небольшим адресным пространством в 2 ГБ. This is a useful setting for 32-bit computers that have a small, 2 GB address space. Это позволит избежать неудачных запросов из-за ошибок нехватки памяти. It can help avoid failed requests due to out-of-memory errors. 0 0
privateMemory privateMemory Включить перезапуск процесса, если объем выделенной памяти превышает указанный предел в килобайтах. Enable process recycling if private memory allocations exceed a specified limit in kilobytes. 0 0
requests requests Включение повторного запуска процесса после определенного числа запросов. Enable process recycling after a certain number of requests. 0 0
time time Включить повторное использование процессов по истечении указанного периода времени. Enable process recycling after a specified time period. 29:00:00 29:00:00

Динамическая настройка рабочего процесса рабочей роли Dynamic worker-process page-out tuning

Начиная с Windows Server 2012 R2, IIS предлагает возможность настройки приостановки рабочего процесса после бездействия в течение определенного времени (в дополнение к параметру завершения, который существовал с момента выпуска IIS 7). Starting in Windows Server 2012 R2, IIS offers the option of configuring worker process to suspend after they have been idle for a while (in addition to the option of terminate, which existed since IIS 7).

Основным назначением функций неактивного рабочего процесса и завершения бездействия рабочих процессов является экономия использования памяти на сервере, так как сайт может потреблять много памяти, даже если он просто находится в режиме ожидания. The main purpose of both the idle worker process page-out and idle worker process termination features is to conserve memory utilization on the server, since a site can consume a lot of memory even if it’s just sitting there, listening. В зависимости от технологии, используемой на сайте (статическое содержимое VS ASP.NET и другие платформы), используемая память может находиться в любом месте от 10 МБ до сотен МБ, а это означает, что если на сервере настроено множество сайтов, то будут вычислены наиболее эффективные параметры. для сайтов может значительно повысить производительность как активных, так и приостановленных сайтов. Depending on the technology used on the site (static content vs ASP.NET vs other frameworks), the memory used can be anywhere from about 10 MB to hundreds of MBs, and this means that if your server is configured with many sites, figuring out the most effective settings for your sites can dramatically improve performance of both active and suspended sites.

Прежде чем мы перейдем к конкретным, мы должны помнить, что если ограничения памяти отсутствуют, то, вероятно, лучше просто настроить узлы так, чтобы они никогда не приходили к приостановке или прекращению работы. Before we go into specifics, we must keep in mind that if there are no memory constraints, then it’s probably best to simply set the sites to never suspend or terminate. В конце концов, сереâс небольшое значение в завершение рабочего процесса, если это единственный компьютер. After all, there’s little value in terminating a worker process if it’s the only one on the machine.

Обратите внимание, в случае, если сайт выполняет нестабильный код, например код с утечкой памяти или нестабильную работу, Настройка сайта для завершения в режиме простоя может быть быстрым и недействительным вариантом исправления ошибки кода. Note In case the site runs unstable code, such as code with a memory leak, or otherwise unstable, setting the site to terminate on idle can be a quick-and-dirty alternative to fixing the code bug. Мы не рекомендуем использовать эту функцию в качестве механизма очистки, в то время как более постоянное решение находится в Works. ] This isn’t something we would encourage, but in a crunch, it may be better to use this feature as a clean-up mechanism while a more permanent solution is in the works.]

Другой фактор, который следует учитывать, заключается в том, что если сайт использует большой объем памяти, то сам процесс приостановки выполняет сбор данных, так как компьютер должен записывать данные, используемые рабочим процессом, на диск. Another factor to consider is that if the site does use a lot of memory, then the suspension process itself takes a toll, because the computer has to write the data used by the worker process to disk. Если рабочий процесс использует большой объем памяти, то ее приостановка может оказаться более дорогостоящей, чем стоимость ожидания запуска резервного копирования. If the worker process is using a large chunk of memory, then suspending it might be more expensive than the cost of having to wait for it to start back up.

Чтобы максимально эффективно использовать функцию приостановки рабочего процесса, необходимо проверить сайты в каждом пуле приложений и решить, какие из них должны быть приостановлены, что должно быть завершено и что должно быть активно в течение неограниченного времени. To make the best of the worker process suspension feature, you need to review your sites in each application pool, and decide which should be suspended, which should be terminated, and which should be active indefinitely. Для каждого действия и каждого сайта необходимо определить идеальный период времени ожидания. For each action and each site, you need to figure out the ideal time-out period.

В идеале сайты, которые вы настраиваете для приостановки или прекращения, — это те, которые имеют посетителей каждый день, но не настолько, чтобы гарантировать его постоянное активное время. Ideally, the sites that you will configure for suspension or termination are those that have visitors every day, but not enough to warrant keeping it active all the time. Обычно это сайты с 20 уникальными посетителями в день или менее. These are usually sites with around 20 unique visitors a day or less. Вы можете проанализировать шаблоны трафика с помощью файлов журналов сайта и вычислить средний ежедневный объем трафика. You can analyze the traffic patterns using the site’s log files and calculate the average daily traffic.

Помните, что когда конкретный пользователь подключается к сайту, он обычно остается на нем по крайней мере в течение определенного времени, что делает дополнительные запросы, а значит, просто подсчитывает ежедневные запросы, может не точно отражать реальные шаблоны трафика. Keep in mind that once a specific user connects to the site, they will typically stay on it for at least a while, making additional requests, and so just counting daily requests may not accurately reflect the real traffic patterns. Для более точного чтения можно также использовать средство, например Microsoft Excel, для вычисления среднего времени между запросами. To get a more accurate reading, you can also use a tool, such as Microsoft Excel, to calculate the average time between requests. Пример: For example:

URL-адрес запроса Request URL Время запроса Request time Изменений Delta
1 1 /SourceSilverLight/Geosource.web/grosource.html /SourceSilverLight/Geosource.web/grosource.html 10:01 10:01
2 2 /саурцесилверлигхт/жеосаурце.веб/сливерлигхт.жс /SourceSilverLight/Geosource.web/sliverlight.js 10:10 10:10 0:09 0:09
3 3 /SourceSilverLight/Geosource.web/clientbin/geo/1.aspx /SourceSilverLight/Geosource.web/clientbin/geo/1.aspx 10:11 10:11 0:01 0:01
4 4 /лклиентакцессполици.ксмл /lClientAccessPolicy.xml 10:12 10:12 0:01 0:01
5 5 /Саурцесилверлигхт/Жеосаурцевебсервице/Service. asmx / SourceSilverLight/GeosourcewebService/Service.asmx 10:23 10:23 0:11 0:11
6 6 /Саурцесилверлигхт/геоисточник. Web/Жеосеарчсервер. ¦. / SourceSilverLight/Geosource.web/GeoSearchServer. ¦. 11:50 11:50 1:27 1:27
7 7 /rest/Services/CachedServices/Silverlight_load_la. ¦ /rest/Services/CachedServices/Silverlight_load_la. ¦ 12:50 12:50 1:00 1:00
8 8 /rest/Services/CachedServices/Silverlight_basemap. ¦. /rest/Services/CachedServices/Silverlight_basemap. ¦. 12:51 12:51 0:01 0:01
9 9 /Рест/сервицес/динамиксервице/Silverlight_basemap. ¦. /rest/Services/DynamicService/ Silverlight_basemap. ¦. 12:59 12:59 0:08 0:08
10 10 /rest/Services/CachedServices/Ortho_2004_cache.as. /rest/Services/CachedServices/Ortho_2004_cache.as. 13:40 13:40 0:41 0:41
11 11 /rest/Services/CachedServices/Ortho_2005_cache.js /rest/Services/CachedServices/Ortho_2005_cache.js 13:40 13:40 0:00 0:00
12 12 /рест/сервицес/качедсервицес/орсобасингине.аспкс /rest/Services/CachedServices/OrthoBaseEngine.aspx 13:41 13:41 0:01 0:01

Тем не менее, трудно определить, какой параметр применить к смыслу. The hard part, though, is figuring out what setting to apply to make sense. В нашем случае сайт получает пакет запросов от пользователей, а в таблице выше показано, что общее количество уникальных сеансов в течение 4 часов истекло. In our case, the site gets a bunch of requests from users, and the table above shows that a total of 4 unique sessions occurred in a period of 4 hours. При использовании параметров по умолчанию для приостановки рабочего процесса пула приложений сайт будет прерван по истечении времени ожидания по умолчанию, равного 20 минутам, что означает, что каждый из этих пользователей может столкнуться с циклом ускорения сайта. With the default settings for worker process suspension of the application pool, the site would be terminated after the default timeout of 20 minutes, which means each of these users would experience the site spin-up cycle. Это делает его идеальным кандидатом к приостановке рабочих процессов, так как в большинстве случаев сайт переходит в режим простоя, и поэтому его приостановка приведут к экономии ресурсов и позволяет пользователям сразу же обращаться к сайту. This makes it an ideal candidate for worker process suspension, because for most of the time, the site is idle, and so suspending it would conserve resources, and allow the users to reach the site almost instantly.

Последнее и очень важное замечание заключается в том, что для этой функции важна производительность диска. A final, and very important note about this is that disk performance is crucial for this feature. Так как процесс приостановки и пробуждения предполагает запись и чтение большого объема данных на жестком диске, мы настоятельно рекомендуем использовать для этого быстрый диск. Because the suspension and wake-up process involve writing and reading large amount of data to the hard drive, we strongly recommend using a fast disk for this. Твердотельные накопители (SSD) идеально подходят для этого, поэтому следует убедиться в том, что файл подкачки Windows хранится на нем (если сама операционная система не установлена на SSD-накопителе, настройте операционную систему для перемещения файла подкачки на него). Solid State Drives (SSDs) are ideal and highly recommended for this, and you should make sure that the Windows page file is stored on it (if the operating system itself is not installed on the SSD, configure the operating system to move the page file to it).

Независимо от того, используется SSD-диск или нет, мы рекомендуем исправить размер файла подкачки для размещения в нем данных для выхода из страницы без изменения размера файлов. Whether you use an SSD or not, we also recommend fixing the size of the page file to accommodate writing the page-out data to it without file-resizing. Изменение размера файла страницы может произойти, если операционная система должна хранить данные в файле подкачки, так как по умолчанию Windows настроена на автоматическую корректировку размера в зависимости от потребностей. Page-file resizing might happen when the operating system needs to store data in the page file, because by default, Windows is configured to automatically adjust its size based on need. Установив фиксированный размер, можно предотвратить изменение размера и повысить производительность. By setting the size to a fixed one, you can prevent resizing and improve performance a lot.

Чтобы настроить предварительно фиксированный размер файла подкачки, необходимо вычислить его идеальный размер, который зависит от количества сайтов, которые будут приостановлены, и объема используемой памяти. To configure a pre-fixed page file size, you need to calculate its ideal size, which depends on how many sites you will be suspending, and how much memory they consume. Если среднее значение составляет 200 МБ для активного рабочего процесса и у вас есть 500 узлов на серверах, которые будут приостановлены, то файл подкачки должен быть не менее (200 * 500) МБ над базовым размером файла подкачки (т. е. базовый + 100 ГБ в нашем примере). If the average is 200 MB for an active worker process and you have 500 sites on the servers that will be suspending, then the page file should be at least (200 * 500) MB over the base size of the page file (so base + 100 GB in our example).

Примечание . Когда сайты приостанавливаются, они потребляют около 6 МБ каждого, поэтому в нашем случае использование памяти, если все узлы приостановлены, займет около 3 ГБ. Note When sites are suspended, they will consume approximately 6 MB each, so in our case, memory usage if all sites are suspended would be around 3 GB. Однако в реальности йоуâре, вероятно, никогда не будет приостанавливаться одновременно. In reality, though, you’re probably never going to have them all suspended at the same time.

Параметры настройки безопасности транспортного уровня Transport Layer Security tuning parameters

Использование протокола TLS накладывает дополнительные затраты на ЦП. The use of Transport Layer Security (TLS) imposes additional CPU cost. Самый ресурсоемкий компонент TLS — это стоимость установления сеанса, так как она включает полное подтверждение. The most expensive component of TLS is the cost of establishing a session establishment because it involves a full handshake. При повторном подключении, шифровании и расшифровке также добавляются затраты. Reconnection, encryption, and decryption also add to the cost. Для повышения производительности TLS выполните следующие действия. For better TLS performance, do the following:

Включите поддержку открытых соединений HTTP для сеансов TLS. Enable HTTP keep-alives for TLS sessions. Это устраняет затраты на установку сеанса. This eliminates the session establishment costs.

Повторно используйте сеансы, если это уместно, особенно с трафиком без активности. Reuse sessions when appropriate, especially with non-keep-alive traffic.

Выборочно примените шифрование только к страницам или частям сайта, которые им нужны, а не ко всему сайту. Selectively apply encryption only to pages or parts of the site that need it, rather to the entire site.

Примечание Note

Большие ключи обеспечивают дополнительную безопасность, но они также используют больше времени ЦП. Larger keys provide more security, but they also use more CPU time.

Все компоненты могут не требовать шифрования. All components might not need to be encrypted. Однако смешивание обычного протокола HTTP и HTTPS может привести к появлению всплывающего предупреждения о том, что не все содержимое страницы является безопасным. However, mixing plain HTTP and HTTPS might result in a pop-up warning that not all content on the page is secure.

Серверный интерфейс прикладного программирования (ISAPI) Internet Server Application Programming Interface (ISAPI)

Для приложений ISAPI специальные параметры настройки не требуются. No special tuning parameters are needed for ISAPI applications. При написании частного расширения ISAPI убедитесь, что оно написано для повышения производительности и использования ресурсов. If you write a private ISAPI extension, make sure that it is written for performance and resource use.

Рекомендации по настройке управляемого кода Managed code tuning guidelines

Интегрированная модель конвейера в IIS 10,0 обеспечивает высокую степень гибкости и расширяемости. The integrated pipeline model in IIS 10.0 enables a high degree of flexibility and extensibility. Пользовательские модули, реализованные в машинном или управляемом коде, могут быть вставлены в конвейер или заменены существующими модулями. Custom modules that are implemented in native or managed code can be inserted into the pipeline, or they can replace existing modules. Хотя эта модель расширяемости обеспечивает удобство и простоту, перед вставкой новых управляемых модулей, которые присоединяются к глобальным событиям, следует соблюдать осторожность. Although this extensibility model offers convenience and simplicity, you should be careful before you insert new managed modules that hook into global events. Добавление глобального управляемого модуля означает, что все запросы, включая запросы статических файлов, должны касаться управляемого кода. Adding a global managed module means that all requests, including static file requests, must touch managed code. Пользовательские модули уязвимы для таких событий, как сборка мусора. Custom modules are susceptible to events such as garbage collection. Кроме того, пользовательские модули добавляют значительные затраты на ЦП из-за упаковки данных между машинным и управляемым кодом. In addition, custom modules add significant CPU cost due to marshaling data between native and managed code. По возможности следует установить предварительное условие в Манажедхандлер для управляемого модуля. If possible, you should set preCondition to managedHandler for managed module.

Чтобы повысить производительность холодного запуска, обязательно выполните предварительную компиляцию веб-сайта ASP.NET или используйте функцию инициализации приложения IIS, чтобы подготовить приложение. To get better cold startup performance, make sure that you precompile the ASP.NET web site or leverage IIS Application Initialization feature to warm up the application.

Если состояние сеанса не требуется, убедитесь, что оно отключено для каждой страницы. If session state is not needed, make sure that you turn it off for each page.

При наличии множества операций, связанных с вводом-выводом, старайтесь использовать асинхронную версию соответствующих API, что обеспечит более высокую масштабируемость. If there are many I/O bound operations, try to use asynchronous version of relevant APIs which will give you much better scalability.

Кроме того, использование кэша вывода также повышает производительность веб-узла. Also using Output Cache properly will also boost the performance of your web site.

При запуске нескольких узлов, содержащих сценарии ASP.NET в изолированном режиме (один пул приложений на сайт), отслеживайте использование памяти. When you run multiple hosts that contain ASP.NET scripts in isolated mode (one application pool per site), monitor the memory usage. Убедитесь, что на сервере достаточно ОЗУ для ожидаемого количества одновременно выполняющихся пулов приложений. Make sure that the server has enough RAM for the expected number of concurrently running application pools. Рассмотрите возможность использования нескольких доменов приложений вместо нескольких изолированных процессов. Consider using multiple application domains instead of multiple isolated processes.

Другие проблемы, влияющие на производительность IIS Other issues that affect IIS performance

Следующие проблемы могут повлиять на производительность IIS: The following issues can affect IIS performance:

Установка фильтров, не поддерживающих кэширование Installation of filters that are not cache-aware

При установке фильтра, не поддерживающего кэширование HTTP, службы IIS полностью отключают кэширование, что приводит к снижению производительности. The installation of a filter that is not HTTP-cache-aware causes IIS to completely disable caching, which results in poor performance. Фильтры ISAPI, которые были написаны до ИИСÂ 6,0, могут вызвать это поведение. ISAPI filters that were written before IISÂ 6.0 can cause this behavior.

Запросы общего шлюза (CGI) Common Gateway Interface (CGI) requests

Iis настройка времен ожидания в оснастке internet information services

Эту статью не стоит рассматривать как полноценное руководство по безопасности при настройке Internet Information Services версии 7.x — для того уже существует несколько талмудов, которые описывают предмет нашего разговора во всей его красе. Но не у всякого администратора имеется возможность досконально изучить эти книги, а конфигурировать веб-сервер надо уже сейчас. Поэтому хочется опубликовать краткий обзор мер безопасности, которые необходимо иметь в виду, работая с IIS , некий чек- лист что ли, по которому можно быстро пробежаться, сравнить с требованиями своего проекта и корпоративными гайдами по информационной безопасности.

Обозначение 7.x означает, что здесь собран материал для обеих версий продукта: IIS 7 , поставляемый с Windows Server 2008 и Windows Vista , и IIS 7.5 , который Вы можете найти в «коробке» от Windows Server 2008 R2 и Windows 7 .

Все меры, представленные в данной подборке, ни в коем случае не являются ОБЯЗАТЕЛЬНЫМИ. Более того, они могут даже противоречить системным требованиям Ваших веб-приложений. Решение о принятии той или иной меры все таки необходимо выносить в условиях конкретной ситуации. Здесь меры будут носить лишь ОПИСАТЕЛЬНЫЙ характер, чтобы администратор знал — вот здесь еще можно подкрутить ;)

Все ответы

Основы безопасности IIS

Административные меры безопасности IIS

Максимальное усиление безопасности IIS

Кратко об Internet Information Services 7.x

Internet Information Services 7.x — компонент веб-сервиса компании Microsoft для операционной системы Windows Server 2008 (R2) .

На момент написания данного материала IIS 7.5 является последним в длинной линейке версий IIS . Начиная с версии 6.0, Microsoft в цикле разработки данного продукта решила сосредоточить особое внимание на безопасности и непрерывно следует этому подходу до сих пор. В результате IIS 7.x поставляется с большим количеством изменений по сравнению со своим предшественником и имеет огромное количество новых возможностей, которыми только надо умело пользоваться. IIS 7.x был полностью переработан и сейчас базируется на новой модульной архитектуре. Это означает, что вместо монолитного «черного ящика», который устанавливается по умолчанию и имеет лишь пару дополнительных возможностей, IIS 7.x теперь имеет около 40 отдельных компонентов — так называемых модулей. По умолчанию устанавливаются только самые основные модули; дополнительные же могут быть легко добавлены в случае необходимости. Это помогает значительно уменьшить площадь атаки на сервер, просто потому, что ненужные средства отсутствуют в системе. Модульная архитектура имеет множество преимуществ, и в части безопасности, и в администрировании, и в производительности веб-сервера. Кроме того, IIS 7.x не ограничивает Вас набором предразработанных модулей — пишите свои, если хотите заменить существующие, или есть требование расширить функциональность веб-сервера.

Основы архитектуры IIS, или запросопровод для ASP.NET

В прошлом году мне пришлось отсобеседовать около 10-15 кандидатов на должность веб-программиста на ASP.NET средней квалификации. В качестве вопросов «на засыпку», или «со звёздочкой», я просил рассказать, что происходит с HTTP-запросом от момента его поступления на 80-й порт сервера до передачи управления коду aspx-страницы. Статистика была удручающей: ни один из кандидатов не смог выдать хоть что-нибудь внятное. И этому есть своё объяснение: ни в MSDN с technet, ни на специализированном ресурсе iis.net, ни в книгах a-la «ASP.NET для профессионалов», ни в блогах данной теме не уделяется должного внимания – информацию приходится собирать чуть ли не по крупицам. Я даже знаю людей, которые решили написать свой собственный веб-сервер (Игорь, Георгий, привет!), чтобы не разбираться в работе IIS. Единственная толковая статья – «Introduction to IIS Architectures» Риган Темплин (Reagan Templin). Но и она остаётся на периферии интересов аспнетчиков.

Хотя мне лично уже не так интересны чисто технические вопросы, я решил собрать в кучу свой накопленный опыт, раскопать на просторах Сети любопытные детали и передать сие сакральное знание массам, пока оно ещё не устарело. Сразу оговорюсь, что статья ориентирована в большей степени на IIS 7.x, иногда будут ответвления про 6-ку. С 8-й версией в работе не сталкивался, поэтому решил обойти её в этой статье стороной. Но, уверен, читатель без труда разберётся с восьмёркой, освоив изложенный ниже материал.

1. Общий план
2. Крупный план
2.1. HTTP.SYS
2.2. World Wide Web Publishing Service (W3SVC)
2.3. Windows Process Activation Service (WAS)
2.4. Пул приложений
2.5. Домен приложения, приложение
3. Что дальше?
Источники

1. Общий план

Итак, начнём с конца, а потом рассмотрим отдельные аспекты чуть более пристально.
В англоязычной литературе процесс обработки запроса в IIS называется «request processing pipeline» — что-то вроде «конвейера обработки запроса». В общих чертах он представлен на рисунке ниже для http-запроса.

Рис. 1. HTTP request processing pipeline (IIS 7.x).

Таким образом, http-запрос проходит по «сборочной ленте конвейера» через следующее:

1. Браузер обращается к веб-серверу по определённому URL, на стороне сервера запрос перехватывает драйвер HTTP.SYS.
2. HTTP.SYS стучится к WAS для получения информации из хранилища конфигурации.
3. Служба WAS запрашивает конфигурацию из хранилища — из файла в папке IIS (applicationHost.config).
4. Поскольку данный запрос получен по протоколу HTTP конфигурационную информацию получает служба W3SVC (она же WWW Service на картинке), эта информация содержит в себе данные о пуле приложений (application pool) и прочих параметрах сайта.
5. Служба W3SVC использует эту информацию для кофигурации HTTP.SYS.
6. Служба WAS запускает процесс W3WP.exe для пула приложений, если он ещё не был запущен.
7. В процессе W3WP.exe работает приложение веб-сайта, которое, собственно, формирует и возвращает ответ драйверу HTTP.SYS.
8. HTTP.SYS отправляет ответ браузеру.

В принципе уже этой схемы достаточно для прохождения интервью в большинстве компаний и получения общего представления об архитектуре IIS. Но если вы не для галочки сюда зашли, то прошу следовать далее.

2. Крупный план

2.1. HTTP.SYS

На транспортном уровне IIS использует прослушивателей протоколов (protocol listeners), которые располагаются поверх стека TCP/IP. Наиболее интересный нам такой компонент – это системный драйвер HTTP.sys, который встроен в ядро ОС и работает с протоколами HTTP и HTTPS, регистрирующийся самостоятельно на прослушку всех портов, на которые будут приходить запросы к сайтам в IIS.

Встроенный в ядро HTTP.sys стал нововведением в IIS 6, заместив собой Windows Socket API – компонент перехвата HTTP- и HTTPS-запросов на пользовательском уровне в IIS более ранних версий. Вероятно, интеграция драйвера в ядро является той самой причиной, по которой версия IIS жёстко привязана к версии Windows.

Драйвер принимает все входящие запросы и перенаправляет их в нужный пул приложений. Если по какой-то причине рабочий процесс, в коем хостится требуемый пул, остановлен (сбой, таймаут простоя, смена конфигурации и т.п.) или ещё запускается, то HTTP.sys сохраняет входящие запросы в специально отведённой для каждого пула очереди. Таким образом, запросы пользователей никуда не пропадают, и они вообще не замечают каких-то перебоев в работе сайтов под управлением IIS.

Ещё HTTP.sys умеет кешировать ответы (более подробно — Instances in which HTTP.sys does not cache content), поэтому некоторые запросы обрабатываются без передачи на уровень приложения, а также проводит первичный разбор URI запроса и его валидацию в соответствии с RFC 2396 (кое-что можно почерпнуть отсюда — Use of special characters like ‘%’ ‘.’ and ‘:’ in an IIS URL) и журналирование запросов/ответов.

Некоторые настройки HTTP.sys вынесены в системный реестр Windows (более подробно — Http.sys registry settings for Windows). Кстати, там же – в реестре – можно подсмотреть обычное место прописки нашего гражданина: %SystemRoot%\system32\drivers\http.sys.

Признаться, в процессе написания данной статьи я сам открыл для себя некоторые детали. Например, кэширование ответов на уровне драйвера HTTP.sys. Это помогло мне объяснить один случай странного, как мне тогда казалось, феномена в поведении IIS. Маркетологи выложили на сайт swf-открытку перед очередным праздником, но потом им что-то не понравилось в названии файла и они его переименовали. Однако сайт продолжал выдавать открытку по старому URL и даже очистка браузерного кэша не помогала. Тут уже подключился я, но ни перезапуск веб-сайта и всего пула приложений, ни обращение к сайту в обход корпоративного прокси-сервера не дали ожидаемого результата. Но теперь-то мы знаем, кто виноват.

2.2. World Wide Web Publishing Service (W3SVC)

Данная служба (сокращённо именуемя в спецификациях WWW service) была представлена в IIS 6 в качестве отдельного компонента для работы с протоколами HTTP/HTTPS и управления рабочими процессами приложений и выполняла следующие функции:

  • Администрирование драйвера HTTP.sys.
  • Управление рабочими процессами.
  • Мониторинг показателей производительности веб-сайтов.

Эта служба функционирует в Windows Server 2003 в контексте процесса Svchost.exe (настройки можно посмотреть в реестре HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3Svc) в отличие от всех остальных служб IIS, которые исполняются в контексте процесса Inetinfo.exe, и реализована в Iisw3adm.dll.

В IIS 7.x функция управления процессами была вынесена в отдельную службу – WAS (см. п.2.3) в целях универсализации архитектуры. Теперь WWW-служба стала по своей сути одним из адаптеров, специализируясь на протоколах HTTP/HTTPS – работа поверх драйвера HTTP.sys. Однако WWW-служба остаётся краеугольным компонентом IIS, поэтому её настройка отличается от настройки адаптеров к другим протоколам (чуть подобнее здесь); она функционирует в том же рабочем процессе, что и WAS, и реализована в той же самой библиотеке (рис. 2).

Рис.2. Рабочий процесс со службами W3SVC и WAS.

Раз уж зашла речь об адаптерах к прослушивателям протоколов (protocol listener adpater), то давайте чуть задержимся и посмотрим, какие они бывают. В принципе IIS 7.x можно настроить для обработки запросов по любым протоколам помимо типовых HTTP и FTP, например, POP3, SMTP, Gopher. Вы даже вольны придумать свой протокол для своей веб- или WCF-службы и реализовать для него все нужные компоненты, если не жалко своего времени. Скорее всего, адаптеры и прослушиватели для наиболее распространённых протоколов доступны для свободного и коммерческого скачивания – этого я не проверял. Но прежде всего стоить обратить внимание на стандартные службы (рис. 3), поставляемые с .NET Framework и интегрированные с IIS:

  • NetTcpActivator для протокола TCP;
  • NetPipeActivator для Named Pipes;
  • NetMsmqActivator для Message Queuing (ака MSMQ).

Рис. 3. Перечень стандартных не-HTTP-адаптеров в оснастке Служб Windows.

Но всё-таки наиболее важным для нас адаптером является именно WWW-служба, т.ч. остановимся чуть подробнее на двух оставшихся от IIS 6 функциях.

Администрирование и конфигурирование HTTP(S). В момент обновления конфигурации веб-сайтов, служба WAS передаёт эту информацию WWW-службе, а та уже, в свою очередь, настраивает HTTP.sys на прослушку конкретных портов, разбор IP и заголовка запрашиваемого сайта и, возможно, других параметров драйвера. В обратную сторону W3SVC обращается к WAS, когда в очередь запросов в HTTP.sys поступает новый, – для получения рабочего процесса-обработчика данного запроса.

Отслеживание показателей производительности. WWW-служба ведёт счётчики производительности, используя для этого драйвер HTTP.sys, и предоставляет их показатели веб-сайтами и кэшу IIS. Более подробной информации по этому вопросу мне найти не удалось.

2.3. Windows Process Activation Service (WAS)

Итак, WWW-служба в IIS 7.x, как и в IIS 6, продолжает выполнять задачи по администрированию HTTP.sys и управлению показателями производительности веб-сайтов. А вот задача управления рабочими процессами вынесена в отдельную службу – WAS. Она запускается системой в единственном экземпляре, считывает конфигурацию из файла %SystemRoot%\System32\inetsrv\Config\ApplicationHost.config и настраивает через соответствующие адаптеры прослушивателей протоколов в соответствии с указанной в нём информации. Напомним, что для протоколов HTTP/HTTPS адаптером является служба W3SVC, а прослушивателем – драйвер HTTP.sys. При перехвате прослушивателем запроса он через свой адаптер обращается к службе WAS для получения рабочего процесса приложения, которому будет передан запрос для обработки и формирования ответа клиенту.

При активации нужного для обработки пользовательского запроса приложения задействуются следующие компоненты:

  • Адаптеры прослушивателей (Listener adapters) – специальные службы Windows, работающие с конкретным протоколом и взаимодействующие с WAS для направления запросов к правильному рабочему процессу.
  • Собственно WAS. Она ответственна за создание рабочих процессов и управление их временем жизни.
  • Исполняемый файл w3wp.exe – шаблон рабочего процесса.
  • Менеджер приложений управляет созданием и утилизацией доменов приложений (application domains), которые хостятся внутри рабочего процесса.
  • Обработчики протоколов – протоколозависимые компоненты внутри рабочего процесса, ответственные за обмен данными между конкретным адаптером и рабочим процессом. Есть 2 типа обработчиков протоколов: у процесса (process protocol handler — PPH) и у домена приложения (AppDomain protocol handlers — ADPH).

Ниже на рисунке представлен пример схемы компонентов внутри некоего экземпляра рабочего процесса приложения. Когда служба WAS запускает рабочий процесс, она загружает в него согласно конфигурации приложения требуемые обработчики протоколов процессов (PPH) и посредством менеджера приложений создаёт внутри рабочего процесса домен приложения, в котором будет хоститься приложение. Менеджер приложений загружает код приложения в домен приложения и требуемые обработчики протоколов уровня приложения (ADPH) для обработки сообщений по соответствующим сетевым протоколам.

Рис. 4. Компоненты w3wp.exe для взаимодействия с внешними компонентами.

Как отмечалось выше, .NET Framework несёт в себе реализацию компонент для протоколов HTTP/HTTPS (наш любимый ASP.NET), net.tcp, net.pipe и MSMQ. Стеки протоколов HTTP/HTTPS и FTP всё-таки более тесно интегрированы в IIS и ОС, поэтому настройку для нового протокола лучше продемонстрировать на примере менее популярных дотнетовских протоколов. Итак, после установки фреймворка в файле конфигурации IIS ApplicationHost.config появляется записи:

А соответствующие компоненты PPH и ADPH настраиваются в дотнетовском machine.config:

В конфигурационном файле веб-сервера ApplicationHost.config вместе с настройками приложений хранятся связки (bindings), определяющие параметры входящих запросов, которые будут направляться данному приложению. Такими параметрами являются название сетевого протокола, IP-адрес сервера, доменное имя и порт сайта. Эти параметры должны быть уникальными среди работающих приложений для однозначной идентификации целевого приложения. Служба WAS отслеживает это ограничение и не даст вам запустить сайт, у которого это условие не соблюдено, либо предложит остановить сайт с такой же связкой.

Обратите внимание, что в стандартном режиме эксплуатации IIS служба WAS, служба-адаптер для каждого прослушивателя протокола (в т.ч. W3SVC) и сами драйверы/прослушиватели каждого из протоколов (в т.ч. HTTP.sys) запущены в ОС в единственном экземпляре. Но отдельные запросы могут направляться разным приложениям в разных рабочих процессах. С другой стороны, отдельно взятому приложению могут направляться запросы по разным протоколам через соответствующие адаптеры. Видимо, для корректной реализации такого поведения и была придумана архитектурная связка драйвер протокола – адаптер драйвера протокола – служба активации (своеобразный регулировщик, точнее — маршрутизатор) – рабочий процесс.

2.4. Пул приложений

При конфигурации веб-приложения помимо привязок (binding) к параметрам запросов и прочих настроек указывается принадлежность к пулу приложений. Пул приложений стал нововведением в IIS 6 и был призван обеспечить изоляцию веб-приложений друг от друго и тем самым повысить стабильность работы веб-сервера в целом. Суть заключается в том, что код приложения выполняется внутри специального процесса Windows – w3wp.exe. Поэтому исключение внутри веб-приложения приведёт к краху только этого процесса и никак не повлияет на доступность веб-приложений в других пулах и работу служб IIS. Более того, служба WAS попытается заново запустить упавший сайт, и внешние клиенты могут даже не заметить проблем в работе сервера.

Для управления некоторыми параметрами отдельно взятого рабочего процесса w3wp.exe в IIS используется пул приложений. Наиболее часто используемыми из них являются учётная запись, под которой будет запущен процесс, ограничения для очереди запросов, различные таймеры и счетчики для автоматического перезапуска процесса, архитектура x86/x64 (в IIS 7.x) и некоторые другие (рис. 5), о чём любопытный читатель может с лёгкостью прочесть в MSDN и любимом поисковике. Т.о. можно говорить (с определёнными оговорками, см. тж. последний абзац в 2.5) о тождественности процесса w3wp.exe и пула приложений.

Рис. 5 Дополнительные настройки пула приложений

Ключевым нововведением в концепции пулов приложений в IIS 7.x стал новый параметр – модель управления контейнером, который может принимать 2 значения: классическая (Classic mode) и встраиваемая модель (Integrated mode).
Чтобы объяснить разницу между этими режимами работы, потребуется знакомство с понятием «модуль» (Module) в IIS 6/7.x и событийной моделью обработки запросов в связке IIS + ASP.NET. Тема эта достойна отдельной статьи, но меня на неё уже, увы, не хватит, судя по всему. Здесь же представлю вашему вниманию лишь общие, ключевые моменты.

Итак, IIS при обработке запроса пропускает его внутри рабочего процесса через последовательность специальных компонент – модулей. Например фильтрация, перенаправление, кэширование, аутентификация, авторизация. Каждый такой модуль ассоциируется с определённым событием, а их последовательность составляют событийную модель обработки запросов. Модули делятся на нативные (Native) и управляемые (Managed). Нативные модули поставляются вместе с IIS, а управляемые – в составе .NET Framework (ASP.NET). В общем-то, вы можете управлять ими в определённой степени на уровне конфигурации веб-приложения, но взаимодействовать из кода своего ASP.NET-сайта вы можете только с управляемыми модулями.

Рис. 6. Идеология модулей в IIS.

Классическая модель управления контейнером обеспечивает обратную совместимость с режимом изоляции рабочих процессов в IIS 6 – запросы к ASP.NET-сайту сначала проходят через нативные модули, а затем передаются в Aspnet_isapi.dll для обработки модулями в управляемой среде. Такое разделение между IIS и ASP.NET приводит к дублированию некоторых функций, например, аутентификации и авторизации. И вы не имеете возможности управлять программно поведением нативных модулей (пример хоть и не самый животрепещущий, но всё же – раздел «Убираем заголовок Server» в этой статье).

Встраиваемая модель предполагает более тесное взаимодействие между IIS и ASP.NET. Запрос в такой архитектуре обработки пропускается через установленную последовательность событий, в каждом из которых запрос пропускается через нативный и управляемые модули. В таком режиме модели обработки запросов IIS и ASP.NET объединены в единую модель, что позволяет избежать дублирования функций и получить больший контроль над обработкой запроса.

На практике самое важное, что необходимо учитывать при разработке и развёртывании веб-приложений, – это частичная несовместимость этих двух режимов. Т.е. при переводе сайта (точнее пула приложений, в котором работает сайт) из классической модели во встраиваемую практически всегда потребуется корректировка кода (хоть, возможно, и не значительная), а также тщательное тестирование.

2.5. Домен приложения, приложение

Непосредственными контейнерами веб-приложения являются приложение и домен приложения (Application Domain, AppDomain). Зачастую эти два понятия отождествляются, но всё-таки это немного разные вещи. Приложение – это понятие IIS, а домен приложения – из ASP.NET. Причём в общем случае в приложении может быть несколько доменов. Приложением вы можете управлять из консоли IIS, а доменом приложения – в основном программно. Так, например, перезапускается приложение из консоли. А когда мы пересохраняем web.config, то перезагружается именно домен приложения, не трогая IIS-приложение.

Более важным с практической точки зрения является то, что приложение/домен приложения является sandbox-ом для кода вашего ASP.NET-сайта (не с такой надёжной изоляцией, как в случае с пулом, но всё же). Приведу один из моих любимых вопросов, которые я задавал соискателям на собеседованиях. Пусть имеются веб-сайт-1 и веб-сайт-2, а также некая библиотека MyLib.dll, в которой определён класс My >
Рис. 7. Рисунок для задачки.

Ещё один важный момент, который хотелось бы здесь отметить. По умолчанию каждый отдельный рабочий процесс может использовать все имеющиеся на сервере процессоры/ядра, а пул приложений работает на одном рабочем процессе и, следовательно, веб-приложение работает внутри одного IIS-приложения. Тем не менее, вы можете настроить web garden, увеличив кол-во рабочих процессов на пул и, следовательно, число IIS-приложений на одно веб-приложение. Вы без труда сможете найти на просторах интернета информацию о web garden, поэтому опускаю здесь подробности. Единственное, хотелось бы предупредить, что данное средство не является инструментом увеличения производительности, т.к. по умолчанию и так используются все вычислительные мощности сервера. Наоборот, на синхронизацию работы 2+ рабочих процессов уходил «лишнее» время CPU. Делается это в основном для увеличения доступности веб-приложения. Нельзя здесь также не упомянуть о веб-ферме (web farm), как о простейшем средстве балансировки нагрузки в IIS – об этом тоже достаточно статей в Сети. Это другой пример распределённого веб-приложения. Впрочем, с тем же nginx встроенная балансировка нагрузки в IIS конкуренции не выдерживает, и в реальных высоконагрузочных системах вам придётся изобретать свой велосипед или задействовать продукты сторонних производителей.

3. Что дальше?

Дальше нужно разбираться в работе модулей (в терминах IIS) и событийной модели, в которых уже происходит собственно обработка запроса, о чем упоминалось в разделе 2.4. Вообще говоря, эта тема заслуживает отдельной статьи, на которую, боюсь, меня уже не хватит. Но без этого нельзя сказать, что мы рассмотрели весь конвейер обработки запросов. Поэтому кратко пройдёмся здесь по основным моментам, которые любопытствующий читатель может проработать самостоятельно.

Как отмечалось выше в разделе 2.4 модули IIS содержатся внутри рабочего процесса. Через них последовательно пропускается запрос (в отличие от HttpHandler-ов). Их набор и порядок определяется конфигурацией сервера и/или конкретного веб-приложения. Модули предназначены для отдельных, узконаправленных задач, таких как авторизация, кэширование, кастомное логгирование, сжатие, возврат статического контента и, конечно же, формирование HTML-страниц по заданному URL.

Как увеличить тайм-аут запроса в IIS?

Как увеличить тайм-аут запроса в IIS 7.0? То же самое делается на вкладке приложения в настройке конфигурации ASP в IIS 6.0. Я не могу найти раздел конфигурации asp.net в IIS 7.0

Добавьте это в свою веб-конфигурацию

Дополнительный атрибут TimeSpan.

Задает максимальное количество секунд, на которые разрешен запрос выполнить перед автоматическим отключением ASP.NET.

Этот тайм-аут применяется только в том случае, если атрибут debug в компиляции элемент False. Чтобы предотвратить закрытие приложения пока вы отлаживаете, не устанавливайте этот тайм-аут на большое значение.

Значение по умолчанию — «00:01:50» (110 секунд).

В диспетчере IIS щелкните правой кнопкой мыши сайт и выберите » Управление веб- сайтом» → » Дополнительные параметры». Под опцией Connection Limits вы должны увидеть Тайм-аут соединения.

Чтобы увеличить время запроса запроса, добавьте это в web.config

и для конкретной страницы добавьте это

Значение по умолчанию составляет 90 секунд для .NET 1.x.

По умолчанию 110 секунд для .NET 2.0 и более поздних версий.

В IIS >= 7 раздел заменил параметры метабазы ​​ ConnectionTimeout , HeaderWaitTimeout , MaxGlobalBandwidth и MinFileBytesPerSec IIS 6.

Для справки: дополнительную информацию об этих настройках в IIS можно найти здесь. Кроме того, мне не удалось добавить этот раздел в web.config через редактор конфигурации диспетчера IIS, хотя он появился, как только я добавил его и выполнил поиск конфигурации.

Я знаю, что вопрос касался ASP, но, возможно, кто-нибудь найдет этот ответ полезным.

Если у вас есть сервер за IIS 7.5 (например, Tomcat). В моем случае у меня есть серверная ферма с настроенным сервером Tomcat. В таком случае вы можете изменить таймаут с помощью диспетчера IIS:

  • перейдите в Фермы серверовПрокси
  • измените значение в поле ввода Тайм-аут
  • нажмите Применить (верхний правый угол)

или вы можете изменить его в файле cofig:

  • открыть% WinDir%\System32\Inetsrv\Config\applicationHost.config
  • настройте конфигурацию сервера webFarm таким образом, чтобы она была следующей:

$ находится в формате HH: mm: ss (поэтому, если вы хотите установить его на 90 секунд, тогда поставьте там 00:01:30)

Iis настройка времен ожидания в оснастке internet information services

Добрый день уважаемые читатели и гости блога. Для меня было большим удивлением, что в Америке и в Европе, очень много хостинов используемых людьми, построены на Windows Internet Information Services, и ее доля там больше чем Linux Apache или nginx. В сегодняшнем посте я бы хотел рассказать, начинающим системным администраторам, как создавать сайты iis в Windows Server 2012 R2, точнее административную часть, так как там уже вы сами будите выбирать, будет ли это ресурс на движке Werdpress или же статический сайт, вариантов очень много.

Подготовка IIS для развертывания сайта в IIS

И так для нашей задачи, вы уже должны иметь развернутую службу IIS, как это сделать, я рассказывал в отдельной статье. Теперь перейдем к практике и подготовим его для последующих вещей. Открываем диспетчер IIS. Найти этот пункт можно в диспетчера сервера.

Я хочу создать отдельный сайт, пускай это будет iis.pyatilistnik.org, для этого переходим в пункт сайты и через правый клик ,выбираем пункт «Добавить веб-сайт»

Само создание сайта iis состоит из вот таких не хитрых пунктов. Во первых, вы задаете:

  • Имя сайта — у меня это iis.pyatilistnik.org
  • Указываете физический путь — это та папка в которой будет лежать контент для сайта, например, картинки, документы, html странички, если сайт с базой данных, то многое будет лежать в ней.

Далее вы производите привязку сайта к нужному ip адресу, делается это после того, как вы на своем DNS сервере создали A или Cname запись для ресурса. Так же задаем тип привязки, имеет ввиду протокол, тут их всего два обычный незащищенный http и защищенный сертификатом шифрования https, о нем я подробно говорил.

Ну и последним шагом в данном окне, будет указание имени узла, имеется ввиду по какому dns имени, будут фильтроваться заголовки, чтобы попасть на нужный сайт, так как на 80 порту их может висеть очень много.

Пробуем запустить ваш сайт. И так, сайт в диспетчере IIS на Windows Server 2012 r2 мы создали, пробуем его запустить, для этого у вас есть в пункте управление веб-сайтом, отдельный пункт «Обзор»

Если все хорошо, то вы получите доступ к ресурсу, если же нет, то увидите запрещающее сообщение:

Тут два варианта:

  • У вас пустая папка с сайтом, попробуйте поместить в нее, хотя бы картинку, для тестирования
  • У вас просто нет прав на чтение данного каталога на уровне Windows

С первым вариантом, все понятно, кладем в папку нужный контент, во втором случае, вам нужно назначить права, я дам их для группы «Все» на чтение. Делается это просто, выберите папку и щелкните по ней правым кликом, выберите свойства.

Перейдите на вкладку «Безопасность > Изменить > Добавить > Проверить имя» и через поиск найти нужную группу.

Назначаем нужный уровень прав для созданного сайта IIS, у меня это чтение и выполнение.

Открываем в браузере ваш сайт и проверяем.

Если у вас появляется окно, что не удается отобразить эту статью, то у вас с большой вероятностью, либо не правильная привязка к порту, либо не открыт порт на брандмауэре.

Следующим шагом, у вас встанет вопрос какого типа будет ваш сайт и нужно ли для его настройки добавлять новые компоненты или же устанавливать сторонние, по типу PHP или MySQP для WordPress. Далее я вам советую, разобраться в вопросе проверки подлинности IIS и как она настраивается.

Илон Маск рекомендует:  Php руководство по рнр 3 0 функции датывремени
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL