Iis использование средств оценки содержимого


Содержание

Установка и конфигурирование IIS

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

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

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

В Microsoft привязывают выпуски IIS с выпусками Windows. В состав Windows Server 2008 и Windows Vista входит версия IIS 7.0, в состав Windows Server 2008 R2 и Windows 7 — версия IIS 7.5, а в состав Windows Server 2012 и Windows 8 — IIS 8. Версии — 7.0 и 7.5 — в Microsoft обобщенно называют IIS 7, что может вносить путаницу. Версию IIS, поддерживаемую операционной системой, изменить нельзя — Windows Server 2008 будет использовать только IIS 7.0. Например, модернизировать ее до версии IIS 7.5, используемой в Windows Server 2008 R2, не получится.

Установка IIS

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

Установка IIS на настольных версиях Windows (Windows Vista, Windows 7 и Windows 8)

Каждая версия операционной системы Windows предлагает свою версию IIS — IIS 8 (в Windows 8), IIS 7.5 (в Windows 7) или IIS 7 (в Windows Vista). Во всех этих версиях Windows, IIS включен, но изначально не установлен. Чтобы установить его, необходимо выполнить следующие действия:

Откройте панель управления.

Нажмите кнопку «Включение или отключение компонентов Windows». Теперь вам нужно подождать, пока Windows исследует вашу систему.

Найдите элемент Internet Information Services (Службы IIS) в верхней части списка и нажмите на галочку чтобы включить его:

Обратите внимание, что Windows позволяет включить множество компонентов IIS: поддержка FTP-сервера, дополнительные инструменты управления, службы обратной совместимости с IIS 6 и т.д.

Убедитесь, что вы выбрали поддержку ASP.NET. Для этого раскройте узел Службы Интернета Компоненты разработки приложений ASP.NET (Internet Information Services World Wide Web Services Application Development Features ASP.NET):

Если вы хотите использовать поддержку IIS в Visual Studio, которая позволяет вам создавать виртуальные каталоги IIS непосредственно в диалоговом окне New Web Site, вам нужно выбрать пункт «Совместимость управления IIS 6» в разделе «Средства управления веб-сайтом» (Web Management Tools IIS 6 Management Compatibility).

Как только вы выбрали нужные параметры IIS, нажмите кнопку OK для завершения установки.

Установка IIS в Windows Server 2008

Установка и настройка IIS одинакова для Windows Server 2008 и Windows Server 2008 R2. Необходимые шаги описаны ниже:

Запустите диспетчер сервера. Чтобы сделать это, нажмите кнопку Start и выберите All Programs Administrative Tools Server Manager.

Выберите узел Roles в дереве слева.

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

Выполните необходимые действия в мастере. Вас вероятно попросят установить дополнительные необходимые роли — если это так, нужно просто принять операции и продолжить.

После установки вам будет предложено настроить веб-сервер. Как в настольных версиях Windows, вы можете выбрать специфические особенности IIS 7, которые должны быть включены.

Если вы работаете в ASP.NET с версией .NET Framework 4.5, то эту версию .NET Framework необходимо будет установить (центр разработчиков .NET Framework)

Установка IIS в Windows Server 2012

Процесс установки IIS в Windows Server 2012, по существу, такой же, как и в Windows Server 2008. Основное различие заключается в том, что пользовательский интерфейс несколько отличается. Подробное описание вы можете найти перейдя по ссылке Installing IIS 8 on Windows Server 2012.

Управление IIS

При установке IIS, он автоматически создает каталог с именем C:\inetpub\wwwroot, который представляет ваш веб-сайт. Все файлы в этом каталоге будет отображаться, как будто они находятся в корневом каталоге вашего веб-сервера.

Чтобы добавить дополнительные страницы на ваш веб-сервер, можно скопировать файлы HTML, ASP или ASP.NET напрямую в каталог C:\Inetpub\wwwroot. Например если добавить файл TestFile.html в этот каталог, вы можете запросить его в браузере через URL-адрес http://localhost/TestFile.html. Вы даже можете создавать вложенные папки для группирования связанных ресурсов. Например, вы можете получить доступ к C:\inetpub\wwwroot\MySite\MyFile.html через браузер, используя URL-адрес http://localhost/MySite/MyFile.html.

Каталог wwwroot удобен для запуска простых примеров и статичных страниц. Для правильного использования ASP.NET вы должны сделать свой собственный виртуальный каталог для каждого веб-приложения, которое вы создаете. Например, вы можете создать папку с любым именем на любом диске вашего компьютера и поместить ее в виртуальный каталог IIS как будто она расположена в каталоге C:\inetpub\wwwroot.

Прежде чем начать работу, вам нужно запустить диспетчер служб IIS. Его можно найти в меню Start (Пуск). Конкретное расположение может зависеть от используемой версии Windows (IIS Диспетчер служб IIS). Ярлык программы будет располагаться в разделе Programs (Программы) или Administrative Tools (Администрирование). Начальная страница IIS Manager показана на рисунке ниже:

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

Если развернуть элемент сервера в древовидном представлении в левой части экрана, отобразится элемент Sites (Сайты), содержащий единственную запись Default Web Site (Веб-сайт по умолчанию). Сайт — это коллекция файлов и каталогов, образующих веб-сайт. На одном сервере IIS может поддерживать несколько сайтов, как правило, на различных портах TCP/IP (по умолчанию используется порт 80). Сочетание имени сервера и порта сайта образует первую часть URL-адреса. Например, при использовании сервера mywebserver с сайтом, подключенным к порту 80, URL-адрес выглядит следующим образом:

Каждый сайт может содержать множество файлов и каталогов. Каждый из них образует часть URL-адреса. Так, URL-адрес статической страницы mypage.html, расположенной в каталоге myfiles, будет следующим:

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

Чтобы проверить работоспособность IIS выберите Default Web Site и в правой области диспетчера служб IIS выберите пункт «Запустить». После этого нажмите кнопку «Обзор *.80 (http)» чтобы открыть страницу сайта в браузере:

Как видите, в моем случае я поменял порт используемый по умолчанию (с 80 на 8080). Я сделал это, т.к. на 80-м у меня запущен локальный Apache-сервер. Если у вас возникает такая же проблема, то изменить порт можно щелкнув правой кнопкой мыши по сайту (Default Web Site) и выбрав в контекстном меню «Изменить привязки» (Bindings). После этого в диалоговом окне можно изменить порт, используемый по умолчанию.

Итак, каждый сервер может поддерживать множество сайтов, каждый из которых работает на другом порту или с другим IP-адресом. Каждый сайт может иметь множество файлов и каталогов, и сочетание этих элементов предоставляет информацию о URL-адресе. Мы вернемся к URL-адресам и использованию IIS Manager при рассмотрении каждого из подходов к развертыванию.

Десять лучших способов улучшения производительности IIS 7.0

Посетителей: 11846 | Просмотров: 14496 (сегодня 2) Шрифт:

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

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

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

Скорее всего, просто переход на IIS 7.0 не выявит всех преимуществ нового веб-сервера, хотя в некоторых случаях и этого будет достаточно. Например, на узле Microsoft.com было отмечено 10-процентное улучшение эффективности использования ЦП (полный анализ доступен в блоге группы разработки Microsoft.com наgo.microsoft.com/fwlink/?Link >® (оба процесса теперь выполняются на уровне ядра), а также улучшение вертикальной масштабируемости на многопроцессорных и многоядерных машинах.

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

Экономичные веб-серверы

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

Полный набор функций веб-сервера IIS 7.0 состоит из 44 модулей, включая собственные модули IIS и ASP.NET, предоставляющие службы для интегрированного конвейера. В модулях реализованы такие функции, как проверка подлинности (модули проверки подлинности Windows и дайджест-проверки подлинности), поддержка инфраструктуры приложения (модуль FastCGI), службы приложений (модуль состояния сеанса), обеспечение безопасности (модуль фильтрации запросов) и производительности (модуль кэширования выходных данных). Однако минимальному веб-серверу, обслуживающему статические страницы, для работы требуется всего 2 модуля!

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

На рис. 1 показаны результаты простых тестов пропускной способности для HTML-файла (статическая нагрузка) и страницы «Здравствуй, мир», написанной на ASP.NET (нагрузка ASP.NET). Использовались три конфигурации веб-сервера: с полным набором функций, с предлагаемым по умолчанию набором функций для каждого типа нагрузки и с минимальным набором необходимых для каждого типа нагрузки функций. Можно заметить, что, хотя большинство необязательных функций отключены даже в полной конфигурации сервера, пропускную способность можно существенно увеличить как в случае статической нагрузки, так и при работе ASP.NET, если полностью удалить ненужные функции.

Рис. 1. Пропускная способность сервера при статической нагрузке и работе с ASP.NET в трех разных конфигурациях со 100 параллельно подключенными клиентами

Кроме того, может снизиться объем занимаемой памяти и повыситься плотность веб-узлов, особенно в случае сред совместного размещения или при использования большого количества рабочих процессов. Это происходит за счет уменьшения количества библиотек DLL, загружаемых каждым процессом, а также количества запросов на выделение памяти, происходящих при инициализации модуля и обработке запроса. На рис. 2 изображено использование памяти (в байтах исключительного использования рабочими процессами IIS) в тестах пропускной способности, о которых говорилось выше. И, хотя приведенные в этом примере изменения не так заметны, они, тем не менее, соответствуют всем ожиданиям. Дело в том, что поддержка приложений ASP.NET требует больше служебных данных, чем можно высвободить удалением модулей.


Рис. 2 Использование памяти (в байтах исключительного использования рабочими процессами IIS) сервером при статической нагрузке и работе с ASP.NET в трех разных конфигурациях со 100 параллельно подключенными клиентами

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

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

Использование экономичной операционной системы

В Windows Server ® 2008 реализовано выделение компонентов на уровне операционной системы, посредством чего можно дополнительно сократить контактную зону веб-сервера. Минимальным режимом установки Windows Server 2008 является режим «Server Core», который содержит минимальный набор основных подсистем операционной системы. Для экономичных веб-серверов на базе IIS 7.0 лучшим вариантом установки является именно Server Core.

Однако, рассматривая возможности Server Core, необходимо учитывать, какие его ограничения могут отразиться на работе вашего приложения. В Server Core отсуствует поддержка платформы Microsoft ® .NET Framework, то есть нет ASP.NET, расширений.NET для IIS и диспетчера служб IIS. Кроме того, решение задач местного управления потребует использования средств командной строки, поскольку консоль управления (MMC) также отсутствует. Между приложениями, работающими под управлением Server Core и полной версией Windows Server, не будет особых отличий в объеме занимаемой памяти и пропускной способности приложений, если уже были использованы преимущества компонентной структуры IIS. Работа, выполняемая IIS и вашими приложениями, одинакова на обеих платформах. Однако есть характеристика, где разница будет заметна: место, занимаемое сервером, как на жестком диске, так и в оперативной памяти.

В качестве примера на рис. 3 показана разница в занимаемом объеме после одинаковой статической рабочей нагрузки на серверы, работающие под управлением Windows Server 2008 в полной конфигурации и Server Core. Хотя IIS занимает в обоих случаях почти одинаковое место, общий объем места, занимаемого операционной системой Server Core меньше, что позволяет поддерживать ту же рабочую нагрузку, используя существенно меньший объем памяти. Из-за меньшего размер установки может появиться возможность использовать менее мощное аппаратное обеспечение для работы приложения. При этом основная мощность процессора будет тратиться на обработку запросов приложения, а не операционной системы, что делает Server Core отличным вариантом для виртуализированных сред.

Рис. 3. Память, занимаемая Windows Server 2008 в полной конфигурации и Server Core после выполнения теста на статическую нагрузку

Применение топологий, адаптированных для нужд приложения

Оптимизируя нагрузку на приложение, в ней можно выделить отдельные части. Например, вместо 30 одинаковых веб-серверов можно обойтись 10 веб-серверами, 3 серверами приложений и 3 прокси-серверами, последние из которых будут выполняли бы кэширование и сжатие данных.

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

Во-вторых, специализация может привести к тому, что приложение будет лучше размещено в кэше, что увеличит его производительность. Это относится к кэшам низкого уровня, таким как аппаратный буфер TLB виртуальной памяти, кэш файловой системы, а также другие средства кэширования, реализуемые как операционной системой, так и приложением. Другим источником хорошего местоположения является ЦП. Уменьшение числа одновременно выполняемых операций путем уделения основного внимания только определенной части приложения позволяет уменьшить количество переключений контекста максимально увеличить объем работы, выполняемой ЦП.

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

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

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

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

Улучшенная поддержка приложения

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

При поддержке платформ приложений в IIS с помощью CGI или другого механизма можно улучшить производительность (а в некоторых случаях и стабильность) путем перехода на протокол FastCGI.

Первой платформой приложений, использующей преимущества этой поддержки, является PHP. Группа разработчиков IIS фактически напрямую работала с компанией Zend Technologies для обеспечения успешной работы реализации FastCGI IIS с PHP и улучшения производительности платформы PHP в Windows. (Более подробные сведения об этом проекте см. в моем блоге по адресу go.microsoft.com/fwlink/?Link >

Перенос PHP и других платформ приложений на IIS 7.0 и FastCGI позволит использовать преимущества различных функций IIS 7.0, в том числе интегрированный контейнер ASP.NET. Это предоставляет очень удобный способ улучшения платформ приложений при помощи служб ASP.NET без их преобразования в ASP.NET. Это также позволяет совместно работать приложениям, использующим различные платформы. Пример использования этого для улучшения существующих приложений при помощи функций и повышения производительности без изменения кода см. в моей статье «Улучшите приложения при помощи интегрированного конвейера ASP.NET» в журнале MSDN ® Magazine (доступна по адресу msdn.microsoft.com/magazine/cc135973.aspx).

Увеличенная плотность приложений

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

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

Обратите внимание на то, что службы IIS 7.0 теперь позволяют подготавливать на каждом сервере больше приложений, чем раньше — в нескольких внутренних тестах достигалась цифра в 100 000 узлов на одном сервере. Это обеспечивает возможность создания и настройки большого числа узлов и приложений.

В качестве предупреждения: для достижения высокоскоростной подготовки необходимо перейти на новые API настройки, поскольку старые API настройки не позволяют этого. Кроме того, не все API настройки IIS предоставляют одинаковые характеристики производительности, поэтому для обеспечения максимальной производительности необходим тщательный выбор API. При возникновении сомнений используйте параметры конфигурации, которые напрямую используют новые объекты настройки IIS, включая пространство имен Microsoft.Web.Administration, служебную программу командной строки AppCmd.exe и объекты настройки IIS COM, которые можно вызвать из сценария, кода .NET или C++.

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

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

В типичном сценарии совместного размещения часто можно увидеть так называемое распределение 80/20, когда 80 процентов запросов выполняются к 20 процентам узлов. Результат – небольшой процент активных узлов в любой определенный момент времени. Для обеспечения большего количества активных узлов службы IIS 7.0 предоставляют активное управление временем существования. Это помогает высвободить память неактивных приложений, чтобы можно было разместить большее количество активных приложений.

В IS 7.0 появился новый алгоритм под названием «динамический простой», заблаговременно регулирующий тайм-ауты простоя рабочих процессов на основе доступной на сервере памяти. При нехватке памяти простаивающие приложения удаляются более быстро, что обеспечивает размещение большего количества приложений. Однако при наличии доступной памяти тайм-ауты могут оставаться большими для обеспечения лучшей производительности и поддержания состояния приложения. Помимо большего количества приложений, которые могут быть активными, динамический простой позволяет избежать условий нехватки памяти, вызывающих существенное снижение производительности сервера из-за пробуксовки.

Илон Маск рекомендует:  Что такое код combinergn

Для обеспечения возможности размещения множества активных приложений также следует использовать преимущества 64-разрядной операционной системы, заключающиеся в возможности использования более 4 ГБ ОЗУ. На основе этого можно настроить рабочие процессы IIS для работы в 32-разрядном режиме (SysWoW64), в котором они используют меньше памяти, одновременно позволяя операционной системе работать с большим объемом памяти, чем возможно в 32-разрядной среде.

Сокращение занимаемой полосы пропускания за счет сжатия данных

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

Одним из наиболее эффективных способов уменьшения полосы пропускания, необходимой для доставки ответов приложения, является использование сжатия HTTP. Оно позволяет значительно уменьшить размер ответа, часто даже в 10 раз, для просто сжимаемого содержимого, такого как HTML. Лучше всего то, что сжатие HTTP поддерживают практически все обозреватели для настольных систем, а затраты на распаковку на оборудовании настольных систем минимальны по сравнению с неявной экономией отправки меньшего количества данных. А поскольку сжатие основано на согласовании кодировки содержимого, определенном в протоколе HTTP 1.1, включение этой функции безопасно для клиентов, не поддерживающих сжатие — эти клиенты просто получают несжатую версию содержимого.

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

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

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

Регулировка полосы пропускания для мультимедийных файлов

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

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

Если среднее время просмотра ваших видео составляет всего 5 секунд, но за это время предоставляются (буферизируются) видеоданные длительностью 30 секунд, скорее всего, вы теряете более 80 процентов полосы пропускания!

Год назад для разрешения этой проблемы для клиента, переходящего на бета-выпуск IIS 7.0, я написал модуль регулировки полосы пропускания, автоматически определяющий скорость видео и обеспечивающий предоставление сервером видео клиенту приблизительно с этой же скоростью. Группа мультимедиа IIS использовала этот модуль, называющийся модулем регулировки скорости (см. рис. 4 ) и доступный в центре загрузок iis.net (iis.net/downloads/?tab >

Рис. 4. Регулировки скорости уменьшает использование полосы пропускания

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

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

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

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

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

Кроме того, кэш ядра IIS 7.0 также предоставляет высокопроизводительную альтернативу кэшу вывода ASP.NET для содержимого ASP.NET, не требующего дополнительных функций кэширования (таких как зависимости кэша и недействительность данных в кэше), которые доступны только в кэше вывода ASP.NET.

Что касается кэширования выводимых данных, обычно проблемы связаны с определением верных политик срока действия содержимого, недействительности данных и изменчивости, обеспечивающих эффективное кэширование ответов и одновременное поддержание необходимой правильности и свежести кэша. В большинстве случаев это можно выполнить путем простой настройки верных правил кэширования, хотя иногда требуются более сложные политики, зависящие от информации времени выполнения. Для решения этой проблемы кэш вывода IIS 7.0 предоставляет программные API, которые могут использоваться для обеспечения необходимого поведения кэширования. Это разблокирует потенциал эффективности кэширования для содержимого, кэширование которого в противном случае было бы невыгодным. Кроме того, интегрированный конвейер ASP.NET позволяет использовать кэш вывода ASP.NET для содержимого, не относящегося к ASP.NET.

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


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

Преобразование кода ISAPI в модули IIS 7.0

В IIS 7.0 появился новый серверный интерфейс API, на котором основаны все модули IIS 7.0. Он заменяет устаревшие интерфейсы API ISAPI Filter и ISAPI Extension, использовавшиеся в предыдущих версиях IIS. Для новых модулей, которым не требуется поддержка предыдущих версий, новые API более просты в использовании, позволяют улучшить надежность серверного кода и гораздо более эффективны.

Однако IIS 7.0 предоставляет возможность поддержки существующих фильтров и расширений ISAPI путем использования слоя совместимости, реализуемого посредством дополнительных модулей IIS 7.0. Это позволяет существующим компонентам ISAPI работать в IIS 7.0 без необходимости переписывания.

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

Помимо этого, API модуля IIS позволяет модулям асинхронно выполнять длительные операции, такие как получение данных объекта запроса и отправка ответа. Асинхронное выполнение этих задач позволяет серверу масштабироваться до большого количества одновременно клиентов (десятки тысяч) вместо прежнего максимального количества в несколько десятков или самое большое нескольких сотен одновременных клиентов из-за ограничений количества потоков запросов. Асинхронная обработка также может устранить эффект обработки на других запросах и действиях в приложении, снизить загрузку памяти и обеспечить гораздо лучшее использование ЦП.

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

Для этого могут быть необходимы определенные эксперименты и прототипы для определения оптимальной архитектуры, наилучшим образом использующую улучшения перехода. Из-за фундаментальных архитектурных различий ISAPI и API модуля IIS 7.0 прямой маршрут переноса не всегда является верным. Хорошая новость заключается в том, что API модуля IIS 7.0 также более прост в использовании, чем ISAPI, что упрощает переход.

Расширяемость сервера

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

Это может быть выполнено путем замены каких-либо встроенных функций IIS 7.0 пользовательскими реализациями. Хотя IIS 7.0 претерпели значительную оптимизацию и тестирование производительности, они, конечно же, не оптимизированы для всех возможных применений. Поэтому можно повысить производительность определенных модулей путем создания оптимизаций для конкретной рабочей нагрузки. Например, можно решить повторно реализовать модуль вывода каталогов для кэширования списков содержимого каталогов в памяти вместо использования интерфейсов API операционной системы для перечисления файлов.

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

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

Заключение

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

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

Продолжаем говорить об процедуре установки веб сервера под управлением IIS 7.0 на Windows Server 2008, которая была рассмотрена в предыдущем посте.

Теперь перейдем к проверке результатов установки IIS 7.0. Самый простой вариант проверить, работает ли веб сервер, особенно – находясь за локальной консолью, это обратиться из любого веб-браузера по адресу http://localhost/. Далее, проверить с локальной и удаленной машины по IP-адресу.

При установке IIS 7.0 создается веб сайт по умолчанию, сконфигурированный на ответ при любом URL-запросе, поступившем на порт 80 любого сетевого интерфейса сервера, на котором установлен IIS 7.0. Т.е. запрос браузера типа http://localhost/ должен быть обработан как запрос к веб сайту по умолчанию. Содержимое сайта по умолчанию представляет собой 2 файла – iisstart.htm и welcome.png (который отображается в iisstart.htm), которые и будут открыты клиентом. Поэтому результат обращения к localhost будет иметь следующий вид:

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

1. Основным инструментом управления IIS 7.0 является консоль Internet Information Services (IIS) Manager, которая устанавливается по умолчанию, вместе с ролью Web Server в Windows Server 2008 (IIS Management Console, раздел Management Tools при установки модулей). После соответствующей установки консоль управления IIS 7.0 можно найти, как дочернюю запись внутри раздела Web Server (IIS) в разделе ролей Server Manager, либо как пункт в разделе Administrative Tools меню Start, либо выполнив команду inetmgr (в командной строке или через пункт Run того же меню Start).

2. При старте консоль Internet Information Services (IIS) Manager открывается с «домашней страницей», на которой в виде панелей находится информация о том, к каким веб серверам и веб сайтам подключался пользователь консоли до этого (если консоль только установлена вместе с ролью Web Server (IIS), то в консоле присутствует запись только о локальном веб сервере), также присутствуют ссылки для выбора подключения к другим серверам, веб сайтам, веб приложениям и папкам, а также ссылки на внешние ресурсы, посвященные IIS.

3. Кроме того, на домашней странице присутствует панель новостей, которые подгружаются как новостная RSS-лента с сайта www.iis.net, если администратор нажимает на ссылку Enable IIS News. Новости, кстати, очень полезные, рекомендуется включать и использовать эту информацию в повседневной работе.

4. При подключении к какому либо веб серверу IIS 7.0 консоль Internet Information Services (IIS) Manager представляет его конфигурацию, как логическую структуру – уровень самого веб сервера, чьи настройки являются глобальными и распространяются по умолчанию на все веб сайты, пулы приложений и, сообственно, веб сайты со своими настройками. Эта конфигурационная иерархия, в виде разворачивающегося дерева, начинающегося с узла с именем (или IP) веб сервера, отображается в левой панели консоли Internet Information Services (IIS) Manager.

5. Если выбрать какой-то узел в дереве конфигурации, то в центральной панель консоли Internet Information Services (IIS) Manager будут отображены в виде отдельных иконок все параметры (а также – модули или списки), соответствующие конфигурации выбранного узла, а в правой панели – набор контекстных задач и операций, которые администратор (или пользователь) может выполнить над данным узлом.

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

7. В правой панели при выборе узла веб сайта отображаются все операции, возможные для выполнения непосредственно с веб сервером (службами IIS в целом) в данном конексте – перезапуск, останов, запуск, переход к пулам приложений и сайтам.

8. Убеждаемся, что пулы приложений (Application Pools) сконфигурированы. Пулы приложений будут рассмотрены позже. Пулы являются дочерним узлом в дереве конфигурации для узла веб сайта. При установке по умолчанию создается только один пул – DefaultAppPool, в котором регистрируется одно приложение – сконфигурированный по умолчанию веб сайт, работу которого мы уже проверили. См. снимок экрана.

9. Ниже узла пулов приложений в дереве конфигурации находится узел веб сайтов (Sites), при выборе которого отображается список работающих на данном веб сервере веб сайтов. По умолчанию создается один веб сайт под названием Default Web Site с внутренним номером (ID) равным 1, «привязанный» на 80 порт всех IP-адресах всех сетевых интерфейсов к любому URL в запросе, и использующий в качестве домашнего каталога своего контента каталог с путем %SystemDrive%\inetpub\wwwroot (что при установленном Windows Server 2008 на диск C: соответствует C: \inetpub\wwwroot).

10. При выборе в левой панели консоли узла веб сайта (Default Web Site), также, как и в случае с выбором узла веб сервера, в центральной панели отображаются иконки для доступа к параметрам конфигурации различных модулей, на этот раз – конкретного веб сайта. Убеждаемся, что также, как и в случае со всем веб сервером, все необходимые модули представлены в центральной панели.

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

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

12. Выберите узел веб сервера в дереве конфигурации в левой панели консоли Internet Information Services (IIS) Manager. В центральной панели кликните на иконку Modules. В центральной панели откроется следующий полный список установленных по умолчанию модулей, представляющий из себя перечень .dll файлов.

13. Чтобы убедиться, что веб сервер будет работать только со статическими файлами (по умолчанию) или только с нужными вам расширениями – выберите снова узел веб сервера и в центральной панели кликните на иконку Handler Mappings. Откроется список «привязки» расширений вызываемых на веб сайте пользователем файлов и привязанных к данным расширениям модулям, выполняющим обработку данного вызова. Обратите внимание, что по умолчанию все файлы привязаны к модулю обработки статических файлов (т.е. запрос какого либо скриптового или исполнимого файла из домашнего каталога веб сайта не будет приводить к его исполнению на сервере, а лишь к передаче данного файла пользователю), а также к модулям документа по умолчанию и просмотра каталога. С этими модулями мы познакомимся позже.

14. И, наконец, для того, чтобы убедиться в безопасности веб сайта – проверьте параметры его аутентификации. Для этого выбираем иконку Authentication в той же центральной панели. По умолчанию никаких модулей аутентификации веб сервер (и веб сайты) не поддерживает. Т.е. все подключения для него анонимны. В чем безопасность? Это значит, что пользователям будет доступен только то содержимое домашних каталогов сайтов – файлы и подкаталоги – которые имеют NTFS разрешения для чтения «всем» (Everyone). В случае, если таких разрешений файл не имеет, пользователю будет отказано в доступе с соответствующей ошибкой 401. Если же пользователь попробует каким-то образом аутентифицироваться в процессе HTTP запроса на сервере – то поскольку никаких модулей аутентификации, кроме анонимного, на веб сервере не установлено – он снова получит соответствующую ошибку 401.

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

Итак, сервер установлен и его работоспособность проверена. Теперь достаточно поместить какой либо статический контент (файлы HTML, изображения, документы и файлы для выгрузки пользователями) в домашний каталог его сайта по умолчанию (напоминаю, что это в большинстве случаев C:\inetpub\wwwroot) – и веб сайт под управлением IIS 7.0 начнет работать. Ну, и конечно, для внешних сайтов – не забыть прописать их A-record в вашей доменной зоне на публичном DNS сервере.

В следующей части – установка IIS 7.0 в режиме командной строки, особенности работы IIS 7.0 на Server Core.

ИТ База знаний

ShareIT — поделись знаниями!

Полезно

Узнать IP — адрес компьютера в интернете

Онлайн генератор устойчивых паролей

Онлайн калькулятор подсетей

Калькулятор инсталляции IP — АТС Asterisk

Руководство администратора FreePBX на русском языке

Руководство администратора Cisco UCM/CME на русском языке

Серверные решения

Телефония

FreePBX и Asterisk


Настройка программных телефонов

Корпоративные сети

Похожие статьи

Этапы установки 1С 8.3 в компании

Разбираемся с Jenkins. Что это?

Puppet — плюсы и минусы

Система записи телефонных разговоров

Apache или IIS – сравнение и преимущества

Про веб — сервера

Если вы, или ваша организация намереваетесь создать Web – сервис, будь то сайт или приложение, то так или иначе вы обратите внимание на наиболее популярные на рынке платформы для создания web – серверов – Apache или Internet Information Services (IIS), которые занимают около 70% от всей доли интернета.

Многие сравнивают противостояние этих двух платформ как соперничество между Microsoft и Linux. В данной статье мы беспристрастно и объективно рассмотрим плюсы и минусы этих платформ.

Apache

Apache HTTP web – сервер – полное название платформы, распространяемой организацией Apache Software Foundation как открытое программное решение или проще говоря «open-source». Программное обеспечение сервера распространяется абсолютно бесплатно и его лицензия позволяет конечному пользователю редактировать исходный код, чтобы адаптировать Apache под свои нужды, а так же, внести вклад в будущее развитие серверной платформы.

Веб – сервер Apache может работать на всех популярных операционных системах, но чаще всего он используется в рамках Linux. Именно в паре с СУБД MySQL и PHP – скриптами образуется известный комплекс программного обеспечения LAMP Web – сервер (Linux, Apache, MySQL, PHP), который повсеместно используется в сети интернет.

В рамках исследования Netcraft, проводимого в феврале 2014 года, web – сервер Apache занимал 42% рынка. Однако стоит отметить, что в том же июне 2013 года этот показатель составлял 54% и 59% в 2010 году. Это связано с улучшением позиций основного конкурента IIS и ростом позиций Nginx.

С точки зрения функционала, Apache имеет впечатляющие характеристики. Многие функции реализуются как совместимые модули, расширяющие базовый функционал, диапазон которых варьируется от поддержки языков программирования до обеспечения различных схем аутентификации. Например, это могут быть языки Perl или Python. Модули аутентификации включают в себя элементы управления доступом к различным директориям сервера, пароль, установление подлинности и так далее. Многие другие функции, такие как Secure Sockets Layer (SSL) или TLS (Transport Layer Security) так же обеспечивается модульной системой. Помимо этого, Apache поддерживает возможность развернуть несколько web – сайтов, или графических интерфейсов приложений. Веб – сервер сжимает страницы, чтобы уменьшить их размер, что обеспечивает высокую скорость их загрузки. Наряду с высоким показателем безопасности, это является конкурентной чертой Apache.

Выделим два основных недостатка Apache HTTP web – сервера:

  • Перенасыщенность функционалом: Еще раз стоит подчеркнуть, что Apache действительно чрезвычайно богат на функции, возможности и инструментарий. Но, к сожалению, в рамках типовой инсталляции пользователь задействует только 10 % от этих функций.
  • С точки зрения архитектуры, Apache, работает по модели «процессов». Это означает, что для каждого соединения Apache выделяет отдельную «коннекцию», или другими словами поток данных, что вызывает значительную загрузку. Конкуренты, а именно асинхронные платформы и сервера работающие по модели «событий», имеют преимущество обработки нескольких процессов одновременно в рамках одной транзакции.

Internet Information Services (IIS) это веб – сервер разработки компании Microsoft и занимает второе место на рынке вслед за Apache. Платформа IIS будет работать только с Windows и поставляется в комплекте с этой операционной системы. В отличие от Apache, где основную поддержку продукта предоставляет сообщество разработчиков, IIS официально поддерживается компанией Microsoft. Разработка этого продукта не так стремительна по сравнению с Apache, но как было сказано выше, одним из главных конкурентных преимуществ IIS является официальная поддержка компании Microsoft, что очень важно для крупного бизнеса. Многие специалисты в области ИТ признают IIS одним из немногих коммерческих продуктов, который по настоящему может быть конкурентом «open-source» решению.

Постоянная доработка безопасности, производительности и удобства администрирования позволили увеличить долю присутствия на рынке IIS с 21% в 2010 году до 32% в феврале 2014 (ранее указанное исследование компании Netcraft). Самые большие продвижения были сделаны с точки зрения безопасности. Версия IIS 6.0 была уязвима к атакам: известный вирус Code Red, который заменял содержимое web – сайта на баннер об авторах вируса. Важно отметить, что многие уязвимости проявляются на уровне операционной системы.

Как и Apache, IIS использует различные расширения для внедрения дополнительного функционала. Например, работа с файлами по FTP, маршрутизация с помощью Application Request Routing (ARR), который позволяет вести балансировку нагрузки и повышать отказоустойчивость, различные медиа – компоненты, аудио, видео, динамическое изменение URL и прочие. Веб – сервер IIS предлагает более высокую совместимость с программной платформой .NET Framework и ASPX (Active Server Pages) чем Apache. Важно, что в IIS поддерживаются такие функции как мониторинг, отслеживание запросов в режиме реального времени. Конечно, IIS можно назвать «условно» бесплатным, так как распространяется он в комплекте с Microsoft Windows Server.

С точки зрения производительности, IIS уступает Apache, в виду архитектурной особенности и строгой работы на Windows.

Подведем итог

И IIS и Apache имеют свои плюсы и минусы. Определиться с web – сервером поможет учет следующих факторов: Сервер IIS должен быть приобретен в комплекте с Windows, Apache не имеет официальной технической поддержки, но имеет высокие показатели безопасности, IIS отлично совместим с .NET и так далее. В таблице ниже приведены некоторые сравнительные характеристики:

Опция Apache IIS
Поддерживаемая ОС Windows, Linux, Unix, Mac OS Windows
Техническая поддержка Сообщество Корпоративная
Стоимость Полностью бесплатно Покупается в комплекте с Windows
Разработка «open-source» Проприетарное решение
Безопасность Хорошо Отлично
Производительность Хорошо Хорошо
Рынок 42% 32%
  • WEB сервер Apache
  • IIS
  • 5895
  • 83

Полезна ли Вам эта статья?

Пожалуйста, расскажите почему?

Нам жаль, что статья не была полезна для вас :( Пожалуйста, если не затруднит, укажите по какой причине? Мы будем очень благодарны за подробный ответ. Спасибо, что помогаете нам стать лучше!

Подпишитесь на нашу еженедельную рассылку, и мы будем присылать самые интересные публикации :) Просто оставьте свои данные в форме ниже.

Базовые сведения об IIS

Структура каталогов IIS

Основные компоненты IIS расположены в каталоге %systemroot%\System32\inetsrv . Структура каталогов inetsrv показана в следующей таблице.

Каталог Описание
ASP Compiled Templates Содержит используемый шаблон ASP.
History Содержит историю изменений метабазы, позволяющую выполнять откат изменений в метабазе.
iisadmpwd Содержит ASP-страницы, относящиеся к аутентификации IIS Admin.
MetaBack Каталог по умолчанию для резервных файлов метабазы.

Примечание. Более подробная информация о метабазе приведена в разделе «Метабаза» далее в лекции.

Веб-сайт администрирования

В IIS 6 веб-сайт администрирования позволяет управлять всем сервером Windows из локального или удаленного веб-браузера. Веб-сайт администрирования располагается в каталоге %systemroot%\System32\ServerAppliance . Он функционирует через SSL, используя порт 8098 по умолчанию. Для доступа к веб-сайту администрирования введите в строке адреса браузера https://имя_компьютера:8098 (где имя_компьютера представляет собой имя компьютера, который необходимо администрировать).

Файлы справки IIS

Все файлы справки IIS 6 перемещены в централизованное место расположения вместе с остальными файлами справки Windows. Это папка %systemroot%\help\iishelp . Самым простым способом вызова справки IIS является выбор команды Help/Help Topics (Справка/Вызов справки) в консоли MMC.

Каталог Inetpub

Каталог Inetpub является основным каталогом файлов IIS. В нем расположены каталоги с содержимым каждой установленной службы. Путь по умолчанию для каталога Inetpub – C:\Inetpub .

Каталог Inetpub содержит следующие подкаталоги.

Каталог Описание
AdminScripts Содержит сценарии Visual Basic, используемые для администрирования сервера IIS.
ftproot Каталог верхнего уровня службы FTP.
mailroot Каталог верхнего уровня службы SMTP.
nntpfile Каталог верхнего уровня службы NNTP.
wwwroot Каталог верхнего уровня веб-сайта по умолчанию.

Учетные записи, используемые в IIS

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

IUSR_COMPUTERNAME

Учетная запись обеспечивает анонимный доступ к веб-сайту при подключении пользователя к веб-странице без представления входных данных. Такой пользователь по умолчанию является членом группы Guest (Гость).

IWAM_COMPUTERNAME

Учетная запись используется для запуска рабочих процессов и является членом группы IIS_WPG.

IIS_WPG


Члены этой группы могут запускать рабочие процессы. Любая учетная запись, выполняющая рабочие процессы, должна быть членом данной группы. Это учетная запись с низким уровнем безопасности, обладающая правами сетевой службы. Процессы, использующие уровень прав Network Service (Сетевая служба), осуществляют доступ к серверу так, как если бы они находились вне сервера, и поэтому не имеют прямого доступа к операционной системе.

Эти процессы можно просмотреть в консоли MMC Computer Management (Управление компьютером) панели Administrative Tools (Администрирование). Для открытия списка Users and Groups (Пользователи и группы) выполните следующие действия.

  1. В меню Start (Пуск) выберите Administrative Tools\ Computer Management (Администрирование\Управление компьютером).
  2. Список пользователей и групп содержится в окне Local Users and Groups (Локальные пользователи и группы) консоли Computer Management (Управление компьютером).
  3. Если компьютер является контроллером домена, список пользователей и групп располагается в окне Active Directory Users And Computers (Компьютеры и пользователи Active Directory) панели Administrative Tools (Администрирование).

Для управления IIS служит оснастка MMC . MMC представляет собой универсальное средство, позволяющее сохранять единую структуру и внешний вид приложений. Для управления IIS 6 используется оснастка IIS . Консоль IIS MMC расположена в окне Start\Administrative Tools (Пуск\Администрирование).

Консоль Microsoft Management Console

С помощью оснастки IIS Manager (или MMC) (см. рис. 1.2) осуществляется управление FTP-сайтами, наборами приложений, веб-сайтами, виртуальными серверами SMTP и NNTP на данном компьютере или на той машине, с которой установлено соединение. По умолчанию соединение установлено с локальным компьютером. Для подключения другого компьютера щелкните правой кнопкой мыши на имени локального компьютера и выберите команду Connect (Подключить).

Управление сайтом с помощью MMC

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

Самым простым способом управления компонентом является использование всплывающего меню, появляющегося при щелчке на компоненте правой кнопкой мыши. В этом меню приведены команды администрирования, применимые к этому компоненту. Большая часть параметров настройки содержится в команде Properties (Свойства).

Свойства локального компьютера. Свойства локального компьютера позволяют изменять параметры, глобально влияющие на все компоненты IIS. Для открытия окна свойства локального компьютера щелкните правой кнопкой мыши на имени_компьютера (локального компьютера) в окне IIS MMC, затем выберите Properties (Свойства). Отобразится окно Properties (см. рис. 1.3).

Изменение любых параметров в этом окне требует последующего перезапуска IIS. На IIS в целом здесь влияют два параметра: Enable Direct Metabase Edit (Включить прямое изменение метабазы) и Encode Web Logs In UTF-8 (Использовать для веб-журналов кодировку UTF-8).

Параметр Enable Direct Metabase Edit (Включить прямое изменение метабазы) позволяет редактировать метабазу при работе IIS. В предыдущих версиях IIS метабаза представляла собой исполняемый файл, доступ к которому был возможен только при помощи специальной утилиты из пакета инструментальных средств. Теперь этот файл можно редактировать в программе Notepad (Блокнот), так как он представлен в формате XML (Расширяемый язык разметки). Можно помещать конфигурацию в буфер и вставлять ее из буфера, сохранять конфигурацию, причем изменения будут вступать в силу незамедлительно. Данный способ работы требует включения журнала метабазы, но так как это является установкой по умолчанию, то никаких вопросов возникать не должно.

Опция Encode Web Logs In UTF-8 (Использовать для веб-журналов кодировку UTF-8) указывает, что в журналах веб и/или FTP должна использоваться кодировка UTF-8, а не локальный набор символов. UTF-8 представляет собой стандарную кодировку текста с восьмибитным кодированием символов Unicode. Для представления каждого символа требуется от одного до шести октетов. UTF-8 использует универсальный набор символов и поддерживает ASCII-текст для совместимости с прежними версиями.

Iis использование средств оценки содержимого

Обновлен: Ноябрь 2007

Если веб-приложение ASP.NET размещено в IIS 7.0, то параметры конфигурации для приложения можно настроить различными способами. К ним относятся:

Использование служб IIS Manager. Дополнительные сведения см. в разделах Практическое руководство. Открытие диспетчера IIS и Диспетчер служб IIS (Internet Information Services (IIS) Manager).

Непосредственное редактирование файла Web.config. Это можно сделать в Visual Studio или Visual Web Developer или используя текстовый редактор.

Использование средства командной строки служб IIS 7.0 (Appcmd.exe). Оно позволяет указать параметры конфигурации IIS и параметры конфигурации веб-приложения. Дополнительные сведения см. в разделе средство командной строки IIS 7.0 (IIS 7.0 Command-Line Tool).

Использование инструментария управления Windows (WMI). В пространстве имен WebAdministration поставщика WMI IIS 7.0 содержатся классы и методы, позволяющие создавать сценарии, использующиеся при администрировании веб-узлов, веб-приложений и связанных с ними объектов и свойств. Дополнительные сведения см. в разделе IIS 7.0: WMI.

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

Модуль управления совместимостью с IIS 6, позволяющий Visual Studio использовать вызовы метабазы для взаимодействия с хранилищем конфигураций IIS 7.0.

Модуль проверки подлинности Windows, позволяющий проводить отладку веб-приложений в Visual Studio.

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

Создание настраиваемого модуля управляемого кода и помещение модуля в каталог App_Code веб-приложения.

Регистрация настраиваемого модуля с использованием диспетчера IIS Manager.

Добавление настраиваемого заголовка HTTP с использованием диспетчера IIS Manager.

В этом пошаговом руководстве функциональные возможности модуля не важны. Цель этого пошагового руководства — демонстрация интеграции модуля в конвейер запросов, а также влияния настройки приложения с помощью диспетчера IIS Manager на файл Web.config.

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

Службы IIS 7.0, установленные и выполняющиеся в ОС Windows Vista или в ОС Windows Server 2008.

По меньшей мере один пул приложений, выполняемый в интегрированном режиме IIS 7.0.

Модуль Совместимость управления IIS 6 , включенный в IIS 7.0.

Visual Studio 2008.

Платформа .NET Framework, версия 3.0 или более поздняя версия.

Административные разрешения на локальном компьютере.

Средство для проверки HTTP-запросов и ответов между локальным компьютером и веб-серверами, например, средство Fiddler, доступное на веб-узле Fiddler Web Debugging Proxy.

Fiddler — это стороннее средство, не поддерживаемое Microsoft.

Для начала потребуется создать новый веб-узел.

Создание нового веб-узла

В Visual Studio нужно создать новый локальный веб-узел HTTP с именем WalkthroughIIS7 .

Дополнительные сведения о создании локального веб-узла IIS см. в разделе Пошаговое руководство. Создание локального веб-узла IIS в Visual Web Developer .

В меню Пуск последовательно выберите пункты Все программы , Стандартные и Выполнить .

В поле Открыть введите inetmgr и нажмите кнопку ОК .

Примечание.

Если включен контроль учетных записей пользователей (UAC), то при попытке доступа к службам IIS Manager может быть отображено сообщение. При появлении данного сообщения нажмите кнопку Продолжить . Дополнительные сведения см. в разделе Контроль учетных записей (User Account Control).

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


Сведения об задании режима веб-приложения см. в разделе Настройка режима обработки запросов для пула приложений (Configure the Request-Processing Mode for an Application Pool).

Теперь можно создать настраиваемый HTTP-модуль.

Создание настраиваемого HTTP-модуля

В обозревателе решений Visual Studio щелкните правой кнопкой мыши узел веб-проекта и выберите пункт Добавить новый элемент .

Откроется диалоговое окно Добавление нового элемента .

Под заголовком Установленные шаблоны Visual Studio выберите Класс .

Выберите предпочитаемый язык программирования.

Для имени класса введите CustomModule и нажмите Добавить .

Если веб-узел еще не содержит папки App_Code, отобразится сообщение с запросом подтверждения помещения класса в папку App_Code. Если это так, нажмите кнопку Да .

В файле класса удалите существующий код и замените его следующим кодом:

Этот код выполняет следующие действия:

Определяет настраиваемый модуль управляемого кода, реализующий интерфейс IHttpModule .

Определяет обработчик событий для события BeginRequest экземпляра HttpApplication . Обработчик событий определяет настраиваемый заголовок, добавляемый к коллекции заголовка ответа.

Добавляет обработчик к конвейеру запросов для уведомления в методе Init модуля.

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

В меню Построение выберите команду Построить веб-узел , чтобы убедиться, что ошибки в модуле отсутствуют.

В качестве последней задачи в этом подразделе нужно создать страницы ASP.NET и HTML, используемые позднее в этом пошаговом руководстве для проверки настраиваемого модуля.

Создание тестовых страниц ASP.NET и HTML

Добавьте новую однофайловую веб-страницу ASP.NET с именем ASPXpage.aspx в корневую папку приложения.

Удалите существующую разметку и замените ее на следующую:

Добавьте новую HTML-страницу с именем HTMLPage.htm в корневую папку веб-приложения.

Добавьте следующую разметку на HTML-страницу:

Сохраните все изменения.

Запустите по отдельности страницу ASPXpage.aspx и страницу HTMLpage.htm, чтобы убедиться в возможности их просмотра в обозревателе.

Примечание.

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

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

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

Регистрация настраиваемого модуля управляемого кода

В меню Пуск последовательно выберите пункты Все программы , Стандартные и Выполнить .

В поле Открыть введите inetmgr и нажмите кнопку ОК .

Примечание.

Если включен контроль учетных записей пользователей (UAC), то при попытке доступа к службам IIS Manager может быть отображено сообщение. При появлении данного сообщения нажмите кнопку Продолжить . Дополнительные сведения см. в разделе Контроль учетных записей (User Account Control).

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

Разверните папку Узлы .

Выберите веб-узел WalkthroughIIS7 . В Windows Server 2008, если веб-приложение является приложением веб-узла, сначала разверните этот веб-узел, а затем выберите WalkthroughIIS7 .

По умолчанию центральная часть диспетчера IIS Manager отображает параметры конфигурации веб-сервера по областям. Для веб-приложения WalkthroughIIS7 существуют две области: ASP.NET и IIS .

В разделе IIS центральной области дважды щелкните значок Модули .

В области сведений Модули в центральной области будут показаны все модули, настроенные в данный момент для IIS.

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

Откроется диалоговое окно Добавление управляемого модуля .

Введите CustomModule в поле Имя .

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

В списке Тип выберите или введите полное имя управляемого типа для модуля.

Тип CustomModule появится в списке, поскольку конфигурация IIS включает любые классы в папке App_Code, реализующие IHttpModule .

Убедитесь, что флажок Вызывать только по запросу приложений ASP.NET или управляемых обработчиков снят.

В данном пошаговом руководстве необходимо, чтобы модуль был применен ко всем запросам в конвейере, а не только к запросам ASP.NET.

Нажмите кнопку ОК .

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

Добавление настраиваемого заголовка ответа

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


В центральной области в разделе параметров IIS дважды щелкните значок Заголовки ответов HTTP .

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

В области Действия щелкните Добавить .

Откроется диалоговое окно Добавить HTTP-заголовок ответа .

В текстовом поле Имя введите CustomHeader1 .

Именем может быть любое слово или фраза, описывающая заголовок.

В текстовом поле Значение введите значение SampleHeader .

Теперь статическое сжатие будет отключено. Это препятствует сжатию статического содержимого, например страниц HTML.

Отключение статического сжатия

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

В центральной области диспетчера IIS Manager дважды щелкните значок Сжатие в разделе параметров IIS .

Подробные сведения функции Сжатие будут отображены в центральной области.

Убедитесь, что флажок Включить сжатие статического содержимого не установлен.

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

Проверка регистрации модуля в файле Web.config

Вернитесь к приложению Visual Studio и к приложению WalkthroughIIS7 .

В обозревателе решений щелкните правой кнопкой мыши имя веб-узла и выберите команду Обновить папку .

Это приведет к тому, что представление папки веб-узла в Visual Studio будет синхронизировано с папкой и файлами на диске.

Если приложение изначально не содержало файла Web.config, то теперь у веб-приложения будет файл Web.config. Если приложение уже содержало файл Web.config, то в файл будут внесены изменения.

В Обозревателе решений дважды щелкните файл Web.config, чтобы просмотреть его содержимое.

Секция system.webServer содержит изменения в параметрах конфигурации, внесенные с помощью диспетчера IIS Manager. В секции system.webServer содержатся следующие дочерние элементы:

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

Элемент httpProtocol , определяющий настраиваемый заголовок ответа.

Элемент urlCompression , отключающий статическое сжатие.

Секция system.webServer будет выглядеть примерно так:

Дополнительные сведения о секции system.webServer см. в разделе Использование конфигурации ASP.NET и в разделе IIS 7.0: system.webServer (IIS Settings Schema) (IIS 7.0: system.webServer (схема параметров IIS)).

Службы IIS 7.0 имеют интегрированный конвейер запросов. Запросы для всех ресурсов приложения (например, для ASPX-страницы или HTM-страницы) могут вызывать уведомления конвейера в модуле управляемого кода, как и в управляемом модуле, созданном в ходе этого пошагового руководства.

Примечание.

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

Проверка применения настраиваемого модуля ко всем ресурсам

В Visual Studio откройте страницу ASPXpage.aspx и нажмите сочетание клавиш CTRL + F5 для отображения страницы в обозревателе.

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

Откройте средство наблюдения за трафиком HTTP и обновите страницу ASPXpage.aspx в обозревателе.

Примечание.

Если URL-адрес для страницы ASPXpage.aspx использует localhost, измените localhost на имя компьютера, на котором установлены службы IIS 7.0. В типовом сценарии разработки это тот же компьютер, на котором выполняется Visual Studio.

Убедитесь, что CustomHeader1 и CustomHeader2 появляются в коллекции заголовков ответа.

Просмотрите HTMLPage.htm в обозревателе.

Убедитесь, что CustomHeader1 и CustomHeader2 появляются в коллекции заголовков ответа.

Это пошаговое руководство предоставило введение в настройку ASP.NET в IIS 7.0. Параметры конфигурации для веб-сервера IIS 7.0 и для ASP.NET объединены в один файл конфигурации, который можно редактировать с использованием одного интерфейса администрирования.

Может также возникнуть необходимость узнать об изменении других параметров в диспетчере IIS Manager и о том, как изменения отражаются в файле конфигурации. Дополнительные сведения см. в разделе Internet Information Services (IIS).

Iis использование средств оценки содержимого

Здравствуйте подскажите правильную настройку IIS 7> под управлением Windows 7, чтобы работало корректно.

В общем сервер работает на Windows 7, также на нём установлен IIS, далее сервер служит чисто для раздачи файлов по http, в общем уже многое перепробовал, по умолчанию если ставить в пуле 1 процесс, то через час или даже ранее отклик пропадает от сайта и вообще от сервера, далее если даже ставить 5 или 10, через часик тоже пропадает, помогает решение в 240 процессов, далее минимальные значение на проверку отклика на приложение, но всё же нормально, но увы в 240 процессов — это как то бесит)) а ещё озу жрёт по не хочу, озу общее на сервере 8гб и файл подкачки 15гб вроде, вот как то так. В общем забивает по максимум, но работает не на максимум. Хочется оптимизировать или правильно настроить, чтобы было например пусть 10 процессов и они смогли обработать свыше 5000 запросов например.

Также есть ли отличия IIS из под Windows 7 и в Windows Server? Ответа по пулу и зависание на отклик не могу негде найти, вот по этому и пишу, помогите спецы, те кто долго и держит сервера на IIS под большие задачи.

Объясняю сервер служит как хранилище, то есть на сервер много хардов и файлов, он тупо раздаёт по http на сайте и всё, ну и + защита от того, чтобы не крали ссылку, я сам прикрутил там уже модуль один.

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

  • Изменен тип Elina Lebedeva Moderator 16 января 2015 г. 11:35 Тема переведена в разряд обсуждений по причине отсутствия активности

Все ответы

Насчет отличий — в принципе нет, если только It appears there is no difference, other than the maximum 10 clients EULA restriction.


Насчет отличий — в принципе нет, если только It appears there is no difference, other than the maximum 10 clients EULA restriction.

в настройка пула (дополнительные параметры), значение длинна очереди поставьте максимальное, а таймаут простоя надо установить на 0 или 24 часа (задается в минутах).

ну как бы так и стоит, а таймаут тоже стоит на 24 часа, чтобы процесс на ребут шёл.

не помогает, помогает решение в 240 процессов от одного пула! Ну как то же люди работают на 1 пуле или же на 2-х, то есть если 2, то пока 1 идёт на перезагрузку, то второй принимает, или же есть ещё такое понятие как перекрытие процесса, то есть запускается новый, а старый висит и завершается, то есть уже не принимает запросы.

Блин помогите мне точно настроить, вообще кто то пробовал под раздачу http юзать?

Кстати позже и скрин выставлю настроек, но прикол в том, то что я настройки уже как мог менял, если ставить мало процессов, например 10, то через час уже ответа нет. То есть например нажимаем на скачать или же открываем сайт, браузер думает, то есть процесс не отвечает, хотя в настройках насчёт того, когда процесс не отвечает, тоже стоит(((

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

Для большенства задач достаточно одного рабочего процесса, правда работал я только с серверными ОС, может на декстопе есть свои ограничения.

Как временное решение можно выставить рестарт пула каждый час.

А ошибки в логах смотрели? Может не в настройках дело.

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

Для большенства задач достаточно одного рабочего процесса, правда работал я только с серверными ОС, может на декстопе есть свои ограничения.

Как временное решение можно выставить рестарт пула каждый час.

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

А насчёт того, что там и как работает, да там тупо файловый архив, то есть по http передаёт прямые ссылки на скачивание, + поставил примочку на то, чтобы не крысили ссылки, но она не как не влияет на это, даже без неё так.

То есть коротко сервер тупо раздаёт файлы по http и всё, там нет не пхп файлов ни скриптов!

Я тоже думаю, то что куча процессов на это не нормально(((

Кстати там есть ещё настройка по ограничение памяти в КБ, там 2 графы, виртуальная память и память просто, чем они отличаются и виртуальная должна стоять больше? + ещё это ограничение на 1 процесс или на весь пул?

Если у вас 64 битная ОС, то виртуальную память лучше не трогать. В таких ОС процесс может запрашивать (но не занимать) сразу большие объемы и это никак не сказывается на производительности. Просто память (Commit size) это сколько фактически занял процесс. Ограничение на один процесс.

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

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

Если у вас 64 битная ОС, то виртуальную память лучше не трогать. В таких ОС процесс может запрашивать (но не занимать) сразу большие объемы и это никак не сказывается на производительности. Просто память (Commit size) это сколько фактически занял процесс. Ограничение на один процесс.

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

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

Да ОС 64 битная, наблюдал пару часиков при условии, что есть нагрузка, да я замечал то что память не так много кушает и доже задавался вопросом когда он достигнет пиковой отметки)) Но я видел ранее лишь перезапуск пулов от того или иного действия!

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

Насчёт процесс монитора, а что именно смотреть то там и куда копать если что?

Далее насчёт простой раздачи http пойдёт нормальный и по умолчанию настройки, увы не так, это опробовано было сразу с первого дня, по этому и менял и трогал настройки)) а изначально не было фильтра, а стоит на сервере в придачу Helicon Ape http://www.helicontech.com/ape/ работает как защита от кражи ссылок, больше уверен, его вырублю тоже самое будет, так как изначально вообще без него работал, то есть без защиты первые дни работал и в первые дни это уже замечал.

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

Application Pool Identities в IIS

Каждый пул приложений в IIS использует свой собственный рабочий процесс (IIS Worker Process). Удостоверение пула приложений (Application Pool Identities) представляет из себя имя учетной записи, под которой выполняется рабочий процесс этого пула.

В IIS 6.0 и IIS 7.0 пул приложений по умолчанию работал под встроенной системной учетной записью NetworkService. Эта запись не требует пароля и имеет на локальном компьютере ограниченные права, что является хорошей практикой с точки зрения безопасности. Однако под этой учетной записью могут одновременно работать разные системные службы Windows, и при использовании одного и того же идентификатора одни службы могут воздействовать на работу других.

Начиная с Windows Server 2008 SP2 для того, чтобы изолировать рабочие процессы IIS от других системных служб, можно использовать виртуальные учетные записи (Virtual Accounts). Они позволяют запускать рабочий процесс для каждого пула приложений под собственной уникальной учетной записью ApplicationPoolIdentity. Эта учетная запись не требует управления и создается автоматически при создании каждого нового пула. Также она не имеет практически никаких привилегий в системе и не использует профиль пользователя, что повышает безопасность веб-сервера.

Для примера возьмем Application Pool с именем PubSite1. Открываем Task Manager и находим рабочий процесс IIS (w3wp.exe), выполняющийся от имени PubSite1. Как видите, имя учетной записи совпадает с именем пула приложений. Дело в том, что начиная с IIS 7.5 для каждого вновь созданного пула приложений по умолчанию создается виртуальная учетная запись с именем этого пула, и его рабочий процесс запускается из под этой записи.

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

При необходимости тип идентификации пула приложений можно изменить. Для этого запускаем IIS Manager, переходим в раздел Application Pools, выбираем нужный пул и открываем его свойства (Advanced Settings).

В свойствах выбираем пункт Identity.

Здесь мы указываем учетную запись, от имени которой будет работать данный пул приложений:

• ApplicationPoolIdentity — учетная запись удостоверения пула приложений. Создается автоматически при запуске пула приложений и имеет самые минимальные права на локальном компьютере. Это наиболее безопасный вариант, начиная с IIS 7.5 используется по умолчанию;
• LocalService – встроенная учетная запись, которая имеет ограниченные права на локальном компьютере. Примерно то же самое, что и NetworkService, но ограничена только локальным компьютером;
• LocalSystem – системная учетная запись, имеющая неограниченные права на локальном компьютере. Наименее безопасный вариант, по возможности не рекомендуется ее использовать;
• NetworkService — учетная запись, которая имеет ограниченные права на локальном компьютере, а также может использоваться для доступа к ресурсам в сети Active Directory на основании учетной записи компьютера.

Кроме того, в качестве удостоверения можно использовать и обычную учетную запись пользователя. Для этого надо выбрать Custom Account, нажать кнопку Set и ввести имя пользователя и пароль. Можно указать любого доменного или локального пользователя.

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

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

appcmd set config /section:applicationpools /[name=″имя пула приложений″].processModel.identityType:SpecificUser|NetworkService|LocalService|LocalSystem

Для примера изменим тип удостоверения для пула приложений PubSite1 на NetworkService:

appcmd set config /section:applicationpools
/[name=″PubSite1″].processModel.identityType:NetworkService

Профиль пользователя

По умолчанию IIS не использует профиль пользователя, но некоторые приложения могут потребовать использование профиля, например для хранения временных файлов. Профиль для учетной записи NetworkService создается системой и всегда доступен. Стандартные пулы приложений (DefaultAppPool, Classic .NET AppPool и т.п.) также имеют профиль пользователя на диске, однако при использовании ApplicationPoolIdentity профиль не создается автоматически.

Если вы хотите настроить ApplicationPoolIdentity на использование пользовательского профиля, то надо зайти в расширенные свойства пула и перевести параметр Load User Profile в состояние True.

Настройка доступа к ресурсам

Иногда веб-приложению может потребоваться доступ к определенной папке или файлу на диске. Чтобы добавить ApplicationPoolIdentity в Access Control List (ACL):

• Запускаем Windows Explorer;
• Выбираем нужный файл или директорию, кликаем по ней правой клавишей мыши и выбираем пункт Свойства (Properties);
• Переходим на вкладку Безопасность (Security),
• Кликаем по кнопке Изменить (Edit), затем Добавить (Add);
• В поле Размещение (Locations) выбираем локальную машину;
• Вводим имя пользователя в виде ″IIS AppPool\имя пула приложений″. Так для пула приложений PubSite1 имя пользователя будет выглядеть ″IIS AppPool\PubSite1″;
• Проверяем имя клавишей Проверить имена (Check Names) и жмем ОК.


Также при желании можно воспользоваться утилитой командной строки ICACLS. Для примера дадим права на изменение для PubSite1:

ICACLS C:\Web\Pubsite1 /grant ″IIS AppPool\PubSite1″:M

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

D – удаление;
F – полный доступ;
M – изменение;
RX – чтение и выполнение;
R – чтение;
W – запись.

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

• Выбираем тип объекта (Object Type) Computers;
• В поле Размещение (Locations) выбираем домен;
• Вводим имя пользователя в виде domainname\machinename$, например contoso\SRV12$;
• Проверяем имя и жмем ОК.

Очень удобный способ предоставлять доступ к сетевым ресурсам типа файловых шар или баз данных SQL Server. Однако работает он только при наличии домена AD.

Установка и конфигурирование IIS

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

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

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

В Microsoft привязывают выпуски IIS с выпусками Windows. В состав Windows Server 2008 и Windows Vista входит версия IIS 7.0, в состав Windows Server 2008 R2 и Windows 7 — версия IIS 7.5, а в состав Windows Server 2012 и Windows 8 — IIS 8. Версии — 7.0 и 7.5 — в Microsoft обобщенно называют IIS 7, что может вносить путаницу. Версию IIS, поддерживаемую операционной системой, изменить нельзя — Windows Server 2008 будет использовать только IIS 7.0. Например, модернизировать ее до версии IIS 7.5, используемой в Windows Server 2008 R2, не получится.

Установка IIS

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

Установка IIS на настольных версиях Windows (Windows Vista, Windows 7 и Windows 8)

Каждая версия операционной системы Windows предлагает свою версию IIS — IIS 8 (в Windows 8), IIS 7.5 (в Windows 7) или IIS 7 (в Windows Vista). Во всех этих версиях Windows, IIS включен, но изначально не установлен. Чтобы установить его, необходимо выполнить следующие действия:

Откройте панель управления.

Нажмите кнопку «Включение или отключение компонентов Windows». Теперь вам нужно подождать, пока Windows исследует вашу систему.

Найдите элемент Internet Information Services (Службы IIS) в верхней части списка и нажмите на галочку чтобы включить его:

Обратите внимание, что Windows позволяет включить множество компонентов IIS: поддержка FTP-сервера, дополнительные инструменты управления, службы обратной совместимости с IIS 6 и т.д.

Убедитесь, что вы выбрали поддержку ASP.NET. Для этого раскройте узел Службы Интернета Компоненты разработки приложений ASP.NET (Internet Information Services World Wide Web Services Application Development Features ASP.NET):

Если вы хотите использовать поддержку IIS в Visual Studio, которая позволяет вам создавать виртуальные каталоги IIS непосредственно в диалоговом окне New Web Site, вам нужно выбрать пункт «Совместимость управления IIS 6» в разделе «Средства управления веб-сайтом» (Web Management Tools IIS 6 Management Compatibility).

Как только вы выбрали нужные параметры IIS, нажмите кнопку OK для завершения установки.

Установка IIS в Windows Server 2008

Установка и настройка IIS одинакова для Windows Server 2008 и Windows Server 2008 R2. Необходимые шаги описаны ниже:

Запустите диспетчер сервера. Чтобы сделать это, нажмите кнопку Start и выберите All Programs Administrative Tools Server Manager.

Выберите узел Roles в дереве слева.

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

Выполните необходимые действия в мастере. Вас вероятно попросят установить дополнительные необходимые роли — если это так, нужно просто принять операции и продолжить.

После установки вам будет предложено настроить веб-сервер. Как в настольных версиях Windows, вы можете выбрать специфические особенности IIS 7, которые должны быть включены.

Если вы работаете в ASP.NET с версией .NET Framework 4.5, то эту версию .NET Framework необходимо будет установить (центр разработчиков .NET Framework)

Установка IIS в Windows Server 2012

Процесс установки IIS в Windows Server 2012, по существу, такой же, как и в Windows Server 2008. Основное различие заключается в том, что пользовательский интерфейс несколько отличается. Подробное описание вы можете найти перейдя по ссылке Installing IIS 8 on Windows Server 2012.

Управление IIS

При установке IIS, он автоматически создает каталог с именем C:\inetpub\wwwroot, который представляет ваш веб-сайт. Все файлы в этом каталоге будет отображаться, как будто они находятся в корневом каталоге вашего веб-сервера.

Чтобы добавить дополнительные страницы на ваш веб-сервер, можно скопировать файлы HTML, ASP или ASP.NET напрямую в каталог C:\Inetpub\wwwroot. Например если добавить файл TestFile.html в этот каталог, вы можете запросить его в браузере через URL-адрес http://localhost/TestFile.html. Вы даже можете создавать вложенные папки для группирования связанных ресурсов. Например, вы можете получить доступ к C:\inetpub\wwwroot\MySite\MyFile.html через браузер, используя URL-адрес http://localhost/MySite/MyFile.html.

Каталог wwwroot удобен для запуска простых примеров и статичных страниц. Для правильного использования ASP.NET вы должны сделать свой собственный виртуальный каталог для каждого веб-приложения, которое вы создаете. Например, вы можете создать папку с любым именем на любом диске вашего компьютера и поместить ее в виртуальный каталог IIS как будто она расположена в каталоге C:\inetpub\wwwroot.

Прежде чем начать работу, вам нужно запустить диспетчер служб IIS. Его можно найти в меню Start (Пуск). Конкретное расположение может зависеть от используемой версии Windows (IIS Диспетчер служб IIS). Ярлык программы будет располагаться в разделе Programs (Программы) или Administrative Tools (Администрирование). Начальная страница IIS Manager показана на рисунке ниже:

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

Если развернуть элемент сервера в древовидном представлении в левой части экрана, отобразится элемент Sites (Сайты), содержащий единственную запись Default Web Site (Веб-сайт по умолчанию). Сайт — это коллекция файлов и каталогов, образующих веб-сайт. На одном сервере IIS может поддерживать несколько сайтов, как правило, на различных портах TCP/IP (по умолчанию используется порт 80). Сочетание имени сервера и порта сайта образует первую часть URL-адреса. Например, при использовании сервера mywebserver с сайтом, подключенным к порту 80, URL-адрес выглядит следующим образом:

Каждый сайт может содержать множество файлов и каталогов. Каждый из них образует часть URL-адреса. Так, URL-адрес статической страницы mypage.html, расположенной в каталоге myfiles, будет следующим:

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

Чтобы проверить работоспособность IIS выберите Default Web Site и в правой области диспетчера служб IIS выберите пункт «Запустить». После этого нажмите кнопку «Обзор *.80 (http)» чтобы открыть страницу сайта в браузере:

Как видите, в моем случае я поменял порт используемый по умолчанию (с 80 на 8080). Я сделал это, т.к. на 80-м у меня запущен локальный Apache-сервер. Если у вас возникает такая же проблема, то изменить порт можно щелкнув правой кнопкой мыши по сайту (Default Web Site) и выбрав в контекстном меню «Изменить привязки» (Bindings). После этого в диалоговом окне можно изменить порт, используемый по умолчанию.

Итак, каждый сервер может поддерживать множество сайтов, каждый из которых работает на другом порту или с другим IP-адресом. Каждый сайт может иметь множество файлов и каталогов, и сочетание этих элементов предоставляет информацию о URL-адресе. Мы вернемся к URL-адресам и использованию IIS Manager при рассмотрении каждого из подходов к развертыванию.

Использование IIS в корпоративных сетях

Архив номеров / 2011 / Выпуск №1-2 (98-99) / Использование IIS в корпоративных сетях

Примечание.

ИВАН КОРОБКО, сертифицированный специалист MCP, автор более 50 статей и двух книг. Занимается созданием различных приложений для Active Directory

Использование IIS
в корпоративных сетях

Использование олицетворения (имперсонализации), реализованного в IIS, многократно увеличивает функционал приложений, обеспечивающих автоматизацию различных процессов


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

Олицетворение в IIS

Internet Information Service (IIS) – яркий пример трехзвенной системы. В качестве клиента выступает любой браузер – Internet Explorer, Mozila, Opera, в качестве сервера – IIS, в качестве сервера базы данных – этот или иной сервер.

Трехзвенная система работает следующим образом: пользователь с рабочей станции (локальной) формирует запрос от своего имени, вызывая веб-страницу, хранящуюся на IIS-сервере. На этом сервере осуществляется проверка полученных данных. В случае удачной проверки происходит их подмена на заранее определенные параметры безопасности, урезанной в целях безопасности учетной записи системного администратора. От имени привилегированного пользователя осуществляется доступ к третьему серверу и выполнение заданных действий, на которые пользователь не имеет права.

Настройка олицетворения осуществляется через пул приложений (Application Pool), который по умолчанию создается для каждого веб-приложения. Практика показывает, что иметь несколько идентичных пулов приложений не имеет смысла – достаточно двух или трех разных пулов. Установив курсор на изменяемый пул в контекстном меню, размещенном в панели справа от списка пула приложений, выберите пункт Advanced Settings… (см. рис. 1). В появившемся диалоговом окне найдите свойство identity и кликните по значку с терм точками справа от предполагаемого значения. В новом окне необходимо выбрать тип учетной записи (custom account), от имени которой будет осуществляться доступ на другие серверы. На заключительном шаге необходимо ввести имя пользователя и дважды его пароль.

Рисунок 1. Настройка олицетворения приложения. Пул приложений

Сделанные изменения записываются в файл web.config. Фрагмент файла приведен в листинге 1.

Листинг 1. Фрагмент файла web.config

Для повышения безопасности рекомендуется значения имени и пароля хранить в реестре [1].

В этом случае значение параметров username и password следующие:

userName=»registry:HKLM\Software\AspNetProcess,Name»
password=»registry:HKLM\Software\AspNetProcess,Pwd»

Веб-сайт, в котором должен использоваться уже настроенный пул приложений, также требует изменений в настройке по умолчанию. Чтобы образовать ассоциацию созданного пула сайту, необходимо войти в диалоговое окно «Расширенные настройки» (Advanced settings) и изменить в поле Application Pull значение – имя ассоциированного пула (см. рис. 2).

Второе обязательное условие – изменить тип аутентификации (см. рис. 2). По умолчанию Windows Authentication выключена, а Anonymous включена. Сделанные изменения также фиксируются в файле web.config (см. листинг 1).

Рисунок 2. Настройка олицетворения приложения. Веб-сайт

Использование IIS в сценариях регистрации пользователей

Сценарий регистрации пользователей в сети, как правило, имеет блочную структуру [2]. Каждый из них решает какую-либо узкую задачу: инвентаризации, подключения сетевых дисков, сетевых принтеров, настройки рабочего окружения пользователей.

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

Как ни странно, большинство настроек, позволяющих унифицировать рабочее пространство пользователя, сосредоточено в ветвях HKEY_LOCAL_MACHINE и HKEY_CLASSES_ROOT, которые недоступны для изменения обычным пользователям.

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

Листинг 2. Сценарий регистрации пользователей в сети (PowerShell)

$ServerLogon=(dir env:logonserver).value # Сервер загрузки
cd $ServerLogon\NETLOGON\PowerShell
[xml] $obj=gc .\IIS.xml # Чтение XML-файла

# Чтение раздела ROOT – PART – IIS, параметра ENABLE
if ([int32]$obj.root.part.iis.enable -eq 1 )
<
# Чтение списка сайтов из ROOT – IIS – SITE, параметры VISIBLE и URL
$obj.root.iis.site | % <
# Вызов версии Internet Explorer
$ie = New-Object -com InternetExplorer.Application
while ($ie.busy -eq $true ) <>
$ie.visible =[int32] $_.visible
$ie.navigate($_.url)
# Назначение времени ожидания
$timeUntil =(Get-Date).AddMinutes($obj.root.part.iis.timeout)
# Контроль времени ожидания
while ($ie.busy -eq $true) >
# Обеспечение последовательного выполнения сценариев
switch ($ie.visible)<
$true >
$false <$ie.quit()>
>
>
>

Для реализации отказоустойчивости каждый модуль имеет конфигурационный файл, в котором сосредоточены внешние настройки (см. листинг 3). Все файлы построены по шаблону [3]. В нем присутствует обязательная и индивидуальная части. В данном случае ею является блок, в котором перечислены сайты, которые будут последовательно выполняться. В случае необходимости можно отображать какой либо-сайт. Для этого используется свойство visible.

Листинг 3. Конфигурационный файл для сценария регистрации пользователей в сети (PowerShell)








После того как сценарий вызвал сайт, например http://mycomputer, на IIS-сервере запускается страница от имени пользователя. Каждая из таких страниц должна обеспечивать удаленный доступ к реестру. Для этого необходимо определить имя компьютера в сети. В листинге 4 приведен шаблон получения удаленного доступа к ветви HKLM и создания в ней нового раздела и параметра.

Листинг 4. Подключение к кусту удаленного реестра (VB.NET)

Partial Class _Default
Public hklm As Microsoft.Win32.RegistryKey
Public hccr As Microsoft.Win32.RegistryKey
Public pcname As String
Public Key As String = «SOFTWARE\Microsoft\Windows\CurrentVersion\. «

Protected Sub form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles form1.Load
pcname = Request.UserHostName
Try
hklm = Microsoft.Win32.RegistryKey.OpenRemoteBaseKey(Microsoft.Win32.RegistryHive.LocalMachine, pcname)
hklm.OpenSubKey(Key1, True).CreateSubKey(SubKeyName)
hklm.OpenSubKey(Key1, True).CreateSubKey(SubKeyName).SetValue(FlagKey, FlagValue, Microsoft.Win32.RegistryValueKind.String)
Catch ex As Exception
ErrorMessage(«Remote Registry Access: » + ex.Message)
End Try

End Sub

Внимание! Удаленная запись в реестр возможна при условии запуска службы«Remote Registry. Используйте групповые политики для ее включения на всех рабочих станциях домена.

Динамическое управление ярлыками приложений в папке «Мой Компьютер»

На основе описанной технологии реализуется динамическое управление ярлыками приложений в папке «Мой Компьютер» на основе членства в группе безопасности каталога Active Directory (см. рис. 3). Такое решение позволяет централизованно управлять предоставлением доступа к сетевым, portable-приложениям, расположенным в сети, и локальным приложениям.

Рисунок 3. Внешний вид папки «Мой Компьютер»

Создав ярлыки пользователей в папке «Мой Компьютер», можно избавиться от нескольких лишних сетевых дисков – теперь они просто не нужны. Ускорить доступ к ресурсу, сократив количество кликов. С точки зрения безопасности это решение также предпочтительно: сотрудник не сможет увидеть путь к приложению, удалив ярлык.

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

Для описания местоположения объекта (папка «Мой компьютер»), достаточно в ветви HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace создать папку. Имя папки – уникальный CLSID, например .

Для его создания можно воспользоваться любой утилитой, генерирующей GUID, например, стандартной утилитой uuidgen.exe, входящей в состав Microsoft SDK. После установки пакеты утилита находится в папке C:\Program Files\Microsoft SDK\Bin.

Описание свойств нового объекта находится в кусте CLSID раздела HCCR. В нем необходимо создать раздел, имя которого – сгенерированный CLSID. Внутренняя структура подпапок, которую необходимо воспроизвести, приведена на рис. 4.

Рисунок 4. Структура раздела в HCCR\CLSID\

Назначение папок, содержащиеся в них ключи и соответствующие им значения описаны в таблице 1.

Таблица 1. Описание свойств ярлыка в HCCR\CLSID

Рубрика: Администрирование / Победитель конкурса
Раздел реестра Ключ Тип данных Значение Комментарий
HCCR\CLSID @ REG_SZ Карта г. Москвы Название ярлыка, отображаемое в папке «Мой Компьютер»
HCCR\CLSID infotip REG_SZ Карта г. Москвы за ноябрь 2007 года Подробное описание ярлыка. Отображается, если навести курсор на ярлык
и подождать 1-2 секунды (см. рис. 1, указано красной стрелкой)
HCCR\CLSID\defaulticon @ REG_SZ \\Server\Folder$\MoscowMap\Btk2007.exe,0 или
\\Server\Folder$\MoscowMap\Map.ico
Путь к иконке, которую увидит пользователь
HCCR\CLSID\defaulticon\shell\open\command @ REG_SZ \\Server\Folder$\MoscowMap\Btk2007.exe Путь к приложению, которое будет запускаться при нажатии на иконку
HCCR\CLSID\shellfolder Attributes REG_BINARY hex:00,01,00,a0 Благодаря этому ключу созданный ярлык нельзя переименовать, удалить и т.д.

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

В свойствах этой группы описаны характеристики ярлыка (их описание приведено на рис. 5).

Рисунок 5. Параметры ярлыка в группе безопасности Active Directory

Чтение данных из Active Directory осуществляется с помощью стандартной .NET FrameWork библиотеки System.DirectoryServices, пространство имен которой необходимо импортировать в проект. Алгоритм работы этой части сайта следующий:

  • определение имени текущего домена;
  • поиск групп безопасности с фильтра;
  • чтение характеристик группы.

Определение имени домена осуществляется с помощью виртуального объекта RootDSE. Этот объект присутствует во всех доменах. Считывая значение свойства DefaultNamingContext, получают имя текущего домена (см. листинг 5).

Листинг 5. Поиск групп в Active Directory (VB.NET)

Imports System.DirectoryServices

Public Domain As String = «»

Dim obj As New DirectoryEntry(«LDAP://RootDSE»)
Domain = «LDAP://» + obj.Properties(«DefaultNamingContext»).Value

Dim obj As New DirectorySearcher()

Next

Для поиска групп безопасности используют объект DirectoryEntry [4]. В качестве фильтра указывается имя группы, значением которого является атрибут cn (см. рис. 6) и тип объекта.

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

Рисунок 6. Чтение полей группы безопасности в Active Directory

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

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