Поделиться через


Общая конфигурация с IIS 7

Введение

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

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

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

Обзор

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

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

Не цели: что эта статья не охватывает

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

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

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

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

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

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

Доменные и недоменные среды

Некоторые администраторы развертывают кластеры веб-серверов в среде домена, а другие развертываются в рабочей группе (не в домене). В этой статье рассматриваются как сценарии, так и указываются различия и предостережения. Рекомендуется настроить СЛУЖБЫ IIS в кластере в домене с помощью справки и безопасности, предоставляемых Active Directory с помощью контроллера домена.

Необходимые компоненты

Чтобы выполнить следующие действия, выполните следующие действия.

  1. Установите IIS на сервере, который будет называться веб-сервером в этой статье.
  2. Убедитесь, что доступ к второму серверу, который будет называться файловый сервер во всей этой статье. Файловый сервер будет размещать общую папку для конфигурации и базового содержимого, к которому можно получить доступ с помощью UNC.
  3. Каждый шаг этой статьи предполагает, что предыдущий шаг был завершен. Выполните все действия по порядку.
  4. Для некоторых шагов существует эквивалентный шаг, который можно выполнить с помощью пользовательского интерфейса. Выполните только один тип шага, если не указано иное.

Централизованная конфигурация

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

Экспорт файлов и настройка перенаправления конфигурации с помощью пользовательского интерфейса

  1. Откройте диспетчер служб IIS.
  2. В представлении дерева выберите подключение сервера, для которого необходимо настроить перенаправление конфигурации.
  3. Дважды щелкните общую конфигурацию.
    Снимок экрана: I S Manager с выбранным значком общей конфигурации.
  4. В области "Действия" нажмите кнопку "Экспорт конфигурации...", чтобы экспортировать необходимые файлы конфигурации с локального сервера в другое расположение (например, общий ресурс UNC).
    Снимок экрана: область действий в общей конфигурации с выделенной точкой точки
  5. В диалоговом окне "Экспорт конфигурации" введите путь, в который нужно экспортировать файлы. Введите пароль для защиты ключей шифрования, экспортированных также. Нажмите кнопку "ОК ", чтобы экспортировать файлы конфигурации и ключи шифрования, защищенные паролем.
    Снимок экрана: диалоговое окно
  6. Выберите поле "Включить общую конфигурацию" проверка, чтобы включить перенаправление конфигурации.
    Снимок экрана: диалоговое окно
  7. Укажите путь, в котором находятся ключи конфигурации и шифрования, и укажите учетные данные для доступа к нему. Щелкните Подключение Как... и введите учетные данные.
    Снимок экрана: диалоговое окно
  8. Нажмите Применить, чтобы сохранить параметры. В диалоговом окне "Общая конфигурация" введите пароль, указанный для защиты ключей шифрования.
    Снимок экрана: диалоговое окно
  9. Нажмите кнопку "ОК ", чтобы завершить настройку перенаправления конфигурации.

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

Заметки об использовании пользовательского интерфейса

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

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

Командная строка

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

Открытие командной строки с повышенными правами пользователя

  1. Щелкните Начать.
  2. Щелкните " Все программы".
  3. Щелкните "Аксессуары".
  4. Щелкните правой кнопкой мыши командную строку и выберите пункт Запуск от имени администратора.
  5. Следуйте инструкциям в любых диалоговых окнах, которые отображаются.

Резервное копирование текущего файла applicationHost.config

При попытке новых функций или изменении нескольких параметров конфигурации рекомендуется создать резервную копию текущего файла applicationHost.config.

Резервное копирование файла applicationHost.config

  1. Откройте командную строку.

  2. Перейдите в каталог IIS, расположенный %WINDIR%\System32\InetSrv по умолчанию. Файлы конфигурации хранятся в каталоге InetSrv\Config. Используйте средство AppCmd для создания объекта резервного копирования и резервного копирования файла applicationHost.config, выполнив следующую команду:

    cd /d %windir%\system32\inetsrv
    appcmd add backup centralConfigBackup
    

    Примечание.

    Средство AppCmd находится в каталоге InetSrv. Если путь к средству не добавляется в переменные среды системы, необходимо получить доступ к этому каталогу.

  3. Убедитесь, что объект резервного копирования, включающий файл applicationHost.config и устаревший файл метабазы для SMTP и других параметров, отличных от веб-сервера, присутствует, выполнив следующую команду:

    appcmd list backup
    

Замена текущего файла конфигурации файлом резервной копии

  1. Откройте командную строку.

  2. Перейдите к каталогу IIS, который находится в каталоге InetSrv по умолчанию. Восстановите объект файла резервной копии AppCmd, выполнив следующую команду:

    cd /d %windir%\system32\inetsrv\
    appcmd restore backup centralConfigBackup
    

Создание пользователя для доступа к UNC-общей папке для настройки

В среде домена администратор должен предоставить или создать учетную запись в домене для использования с Active Directory. Эта учетная запись должна быть настроена с правильными правами пользователя для доступа к UNC-ресурсу.

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

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

  1. Откройте командную строку.

  2. На веб-сервере (интерфейсном сервере, на котором установлены службы IIS), создайте пользователя с именем ConfigUser1 с паролем ConfigPass1, выполнив следующую команду:

    net user ConfigUser1 ConfigPass1 /add
    
  3. На файловом сервере (серверном сервере, где будет находиться центральная конфигурация), создайте пользователя с именем ConfigUser1 с паролем ConfigPass1, выполнив следующую команду:

net user ConfigUser1 ConfigPass1 /add

Создание общих папок UNC для центральной конфигурации и содержимого

Общая папка UNC для конфигурации размещает файл конфигурации applicationHost.config для всех серверов, которые хотят получить данные конфигурации из этого централизованного расположения.

Создание UNC-общей папки

  1. На файловом сервере откройте командную строку.

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

    md %SystemDrive%\centralconfig
    net share centralconfig$=%SystemDrive%\centralconfig /grant:Users,Change
    

    Примечание.

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

  3. Сценарий, отличный от домена: чтобы повысить безопасность общей папки, можно заменить часть "Пользователи", изменить часть переключателя /grant на параметры ConfigUser1,Change. Доступ к общей папке будет иметь только указанный пользователь.

  4. Сценарий домена. Чтобы повысить безопасность общей папки, можно заменить часть "Пользователи", изменить часть переключателя /grant на домен\user,Изменить параметры. Только указанный пользователь получит удаленный доступ к общей папке.

    Примечание.

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

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

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

Примечание.

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

Предоставление учетным записям для UNC-общей папки (домена)

  1. Если учетная запись домена входит в группу локальных пользователей, а пользователи получили доступ при создании общей папки, можно пропустить следующие шаги настройки домена. Однако если учетная запись домена для доступа к локальной общей папке не является частью каких-либо локальных групп пользователей, необходимо выполнить команду, чтобы предоставить права пользователя.
  2. На файловом сервере откройте командную строку.
  3. Предоставьте учетным записям домена права пользователя для чтения каталога, в котором хранится конфигурация, выполнив следующую команду:
icacls %SystemDrive%\centralconfig\ /grant domain\user:R

Добавление пользователя UNC (не домена и домена)

Для сценариев домена и не домена имя пользователя должно включать конфигурацию пакетного задания входа. Это не параметр по умолчанию в Windows Server® 2008; Необходимо вручную добавить его на веб-сервер.

  1. Щелкните Начать. Щелкните Администратор istrative Tools и выберите локальную политику безопасности.
  2. В разделе "Локальные политики" выберите "Назначения прав пользователей".
  3. Дважды щелкните вход в качестве пакетного задания и добавьте созданного пользователя UNC.

Перенаправление конфигурации

Введение

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

Теперь можно переместить конфигурацию в центральное расположение. Это позволяет объявить файл в качестве главного файла и сохранить его в UNC-ресурсе для конфигурации нескольких серверов. После изменения этого файла будут подготавливаться и обновляться все конфигурации сервера одновременно.

Хранение конфигурации в UNC-ресурсе

  1. Скопируйте файлы applicationHost.config и administration.config из %windir%\system32\inetsrv\config каталога на интерфейсном веб-сервере, чтобы предоставить общий доступ на серверном файловом сервере. Если у учетной записи пользователя, вошедшего в систему, есть доступ на запись к серверной общей папке, можно удалить файл в каталоге. В противном случае необходимо пройти проверку подлинности учетной записи пользователя во внутреннем интерфейсе, чтобы выполнить этот шаг.

  2. Доступ к существующему XML-файлу redirection.config в каталоге конфигурации внешнего сервера:

    • Перейдите в %windir%\system32\inetsrv\configWindows Обозреватель.
    • Откройте файл redirection.config. Этот файл и его содержимое создаются при настройке веб-сервера. Средства и API могут получить доступ к этому файлу, чтобы определить, включена ли эта функция.
  3. Откройте файл redirection.config. Задайте следующую конфигурацию с правильным именем сервера, именем пользователя и паролем для вашей среды.

    <configuration> 
        <configSections> 
            <section name="configurationRedirection" /> 
        </configSections> 
        <configurationRedirection enabled="true" path="\\machinename\centralconfig$\" userName="ConfigUser1 or domain\user" password="ConfigPass1 or domainPassword" /> 
    </configuration>
    
  4. Сохраните файл redirection.config. Вы можете снова получить доступ к сайтам, но конфигурация теперь хранится в UNC-ресурсе.

Тестирование конфигурации

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

  1. Файл конфигурации applicationHost.config можно изменить непосредственно в общей папке. После этого будут выполнены уведомления об изменениях, а веб-серверы собирают изменения в файле.
  2. Вы можете добавить второй файл applicationHost.config в серверную общую папку и изменить файл перенаправления веб-сервера.config, чтобы указать новую версию файла. Это полезно для отката или поэтапного развертывания.

Итоги

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

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

Приложение 1. Доступ к файлу redirection.config программным способом для чтения значений

На этом шаге представлен пример доступа к файлу configuration redirection.config программным способом, используя новый API COM AHADMIN. Используйте COM-API AHADMIN для реализации этого API из машинного кода или из скрипта и управляемого кода.

Чтение значений программным способом

  1. Создайте текстовый файл и сохраните его с расширением .js. В следующем скрипте представлен пример чтения атрибута, имени сервера, имени пользователя и пароля для вашей среды:

    try
    {
      var config = WScript.CreateObject( "Microsoft.ApplicationHost.AdminManager" );
      var section = config.GetAdminSection( "configurationRedirection", "MACHINE/REDIRECTION" );
    
      WScript.Echo( "Current redirection:" );
      WScript.Echo( "enabled = " + section.Properties.Item( "enabled" ).Value );
      WScript.Echo( "path = " + section.Properties.Item( "path" ).Value );
      WScript.Echo( "user = " + section.Properties.Item( "userName" ).Value );
      WScript.Echo( "pass = " + section.Properties.Item( "password" ).Value );
    }
    catch(e)
    {
      WScript.Echo(e.number);
      WScript.Echo(e.description);
    }
    
  2. Сохраните файл redirection.js. Теперь этот файл можно запустить из командной строки из-за узла скриптов Windows (WSH).

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

На этом шаге представлен пример доступа к файлу configuration redirection.config программным способом, используя новый API COM AHADMIN. Используйте этот API из машинного кода или из скрипта и управляемого кода из своего COM-объекта.

Написание значений программным способом

  1. Создайте текстовый файл и сохраните его с расширением .js. Следующий скрипт содержит пример записи атрибута, имени сервера, имени пользователя и пароля для вашей среды:

    try
    {
        var config = WScript.CreateObject( "Microsoft.ApplicationHost.WritableAdminManager" );
      config.CommitPath = "MACHINE/REDIRECTION";
        var section = config.GetAdminSection( "configurationRedirection","MACHINE/REDIRECTION" );
      section.Properties.Item( "enabled" ).Value = true;
      section.Properties.Item( "path" ).Value = "\\\\somemachine\\sharefile://folder/";
      section.Properties.Item( "userName" ).Value = "testuser";
      section.Properties.Item( "password" ).Value = "testuser";
      config.CommitChanges();
    }
    catch(e)
    {
      WScript.Echo(e.number);
      WScript.Echo(e.description);
    }
    
  2. Сохраните файл redirection.js.

  3. Теперь этот файл можно запустить из командной строки из-за узла скриптов Windows (WSH).

Приложение 3. Работа с зашифрованными свойствами для конкретного компьютера

По умолчанию СЛУЖБЫ IIS включают двух основных поставщиков для защиты свойств. Эти поставщики находятся в разделе конфигурации configProtectedData в файле <applicationHost.configData> и определяются в элементе <providers> .

AesProvider предназначен для работы с шифрованием и расшифровкой свойств, которые находятся в разделе system.webServer.

IISWASOnlyRsaProvider предназначен для работы с шифрованием и расшифровкой свойств, которые находятся в разделе system.applicationHost.

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

Шаги

  1. Откройте командную строку. Перейдите в каталог Framework, расположенный %windir%\Microsoft.NET\Framework\v2.0.50727\ по умолчанию.

    Примечание.

    Для справки ключи компьютера для системы находятся в папке %ALLUSERSPROFILE%\Microsoft\Crypto\RSA\MachineKeys\

  2. Используйте средство aspnet_regiis для экспорта ключа. Ниже приведена команда для передачи ключа конфигурации. Параметр px определяет, что требуется экспортировать пару ключей RSA. Переключатель pri определяет, что вы также хотите включить закрытый и открытый ключ.

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

    aspnet_regiis -px "iisConfigurationKey" "D:\iisConfigurationKey.xml" -pri
    
  3. После успешного экспорта скопируйте XML-файл на другой компьютер в кластере, чтобы подготовиться к его импорту.

  4. Перейдите в каталог Framework и используйте средство aspnet_regiis для импорта ключа из XML-файла. Ниже приведена команда для завершения передачи ключа.

    Параметр после -pi — это имя импортируемого контейнера ключей. В этом случае это контейнер ключей iisConfigurationKey. Другой контейнер ключей, который использует IIS, — это контейнер ключей iisWasKey.

    aspnet_regiis -pi "iisConfigurationKey" "D:\iisConfigurationKey.xml"