Установка и настройка IIS

Internet Information Services (IIS) — это одна из серверных ролей ОС Microsof Windows Server. IIS может быть установлен через графический интерфейс с помощью "Диспетчера серверов" (Server Manager).

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

Установка IIS

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

  1. Меню "Пуск" → "Диспетчер серверов".
  2. Выберите "Добавить роли и компоненты".

  3. На этапе выбора устанавливаемых ролей необходимо отметить "Веб-сервер (IIS)".

  4. При настройке работы Tomcat через протокол AJP в окне с компонентами необходимо выбрать "Фильтры ISAPI".
  5. Далее оставить все настройки по умолчанию и продолжить установку.

Настройка работы Tomcat через IIS с помощью расширения Application Request Routing (ARR)

Протокол AJP не поддерживает веб-сокеты. Для работы веб-сокетов рекомендуется использовать сервер IIS с помощью расширения Application Request Routing (ARR)

Установка Application Request Routing Module

Для установки Application Request Routing (ARR) используйте "Установщик веб-платформы" или дистрибутив ARR.

Ссылка для скачивания "Установщика веб-платформы" и дистрибутив ARR для необходимой архитектуры

Для "Установщика веб-платформы" необходим доступ в Интернет. Если доступ в Интернет отсутствует, скачайте дистрибутив ARR заранее.

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

После завершения установки на экране откроется окно.

Настройка Internet Information Services (IIS >= 7.0)

Для настройки Internet Information Services (IIS), выполните следующие действия:

  1. Откройте "Диспетчер служб ISS" (IIS Manager).
  2. В IIS Manager перейдите в настройку сервера "Application Request Routing Cache".

  3. На панели "Действия" (справа) в блоке "Proxy" нажмите "Server Proxy Settings".

  4. В настройках Server Proxy Settings установите флажок "Enable Proxy", остальные настройки оставьте без изменений.

    Примените настройки на панели "Действия".

  5. В IIS Manager перейдите в настройку "Переопределение URL-адресов" сайта, на котором будет работать Tomcat.

  6. На панели "Действия" (справа) нажмите на "Добавить правила".

  7. В окне "Добавить правила" выберите "Пустое правило" для входящего трафика.

  8. В окне "Изменить правило для входящего трафика":
    • в поле "Имя" укажите новое правило, например, "Tomcat";
    • в поле "Шаблон" укажите (.*);

    • в поле "URL-адрес переопределения" укажите строку http://hostname:8080/{R:0}, где hostname — имя хоста, на котором работает Tomcat или его IP-адрес;
    • чтобы сохранить изменения нажмите "Применить" на панели "Действия" (справа).

  9. Настройте корректные сообщения об ошибках:

    • выберите сайт, на котором работает приложение;
    • перейдите в "Страницы ошибок" (двойной клик на соответствующей иконке);

    • нажмите "Изменить параметры..."

    • в открывшемся окне (блок "Сообщения об ошибках") выберите вариант "Подробные сообщения об ошибках";
    • нажмите "ОК"

  10. Перезапустите IIS. Проверьте работоспособность приложения через IIS (в примере настройки используется 80 порт).

Настройка работы Tomcat через IIS через протокол AJP

AJP (Apache JServ Protocol) — бинарный протокол взаимодействия между веб-сервером, выступающим в качестве фронтенда, и сервером приложений.

Чтобы настроить проксирование запросов от IIS к Tomcat по протоколу AJP, выполните следующим настройки.

  1. Установка и настройка AJP коннектора.

    1. Скачайте файлы Tomcat ISAPI Filter по ссылке с официального сайта Apache скачать
    2. Распакуйте скачанный файл в каталог C:\naumen\nausd4\iis
    3. Создайте файл конфигурации C:\naumen\nausd4\iis\uriworkermap.properties

      # uriworkermap.properties - IIS
      #
      # This file provides mappings for the workers
      # defined in workermap.properties.minimal.
      # The general syntax for this file is:
      # [URL]=[Worker name]
      
      /*=naumen
    4. Создайте файл конфигурации C:\naumen\nausd4\iis\workers.properties.

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

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

      worker.list=naumen
      worker.naumen.type=ajp13
      worker.naumen.host=127.0.0.1
      worker.naumen.port=8009
    5. Создайте файл конфигурации C:\naumen\nausd4\iis\isapi_redirect.properties

      extension_uri=/jakarta/isapi_redirect.dll
      log_file=C:\naumen\nausd4\iis\isapi_redirect.log
      log_level=error
      worker_file=C:\naumen\nausd4\iis\workers.properties
      worker_mount_file=C:\naumen\nausd4\iis\uriworkermap.properties
  2. Добавление ISAPI фильтр в IIS.

    1. Установите роли веб-сервера IIS "Фильтрация запросов" ("Request Filtering"), "Расширения ISAPI" ("ISAPI Extensions"), "Фильтры ISAPI" ("ISAPI Filters").

    2. Добавьте ISAPI Filter через диспетчер служб IIS:

      1. Перейдите на страницу сайта и выберите функцию "Фильтры ISAPI" ("ISAPI Filters").

      2. Перейдите в функцию "Фильтры ISAPI" ("ISAPI Filters") и нажмите "Добавить".

      3. Заполните параметры:

        • Имя фильтра — "Tomcat".
        • Исполняемый файл — "C:\naumen\nausd4\iis\isapi_redirect.dll"

      4. Новая фильтр отобразится на экране.

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

      1. В левой панели "Соединения" ("Connections") нажмите правой кнопкой на сайт, для которого настраивается проксирование, и выберите "Добавить виртуальный каталог" ("Add Virtual Directory").

      2. Заполните параметры:

        • Псевдоним — "Jakarta".
        • Физический путь — "C:\naumen\nausd4\iis"

    4. Выберите созданный виртуальный каталог.

      1. Перейдите в функцию "Сопоставления обработчиков" ("Handler Mappings").

      2. В панели действий справа выберите "Изменения разрешений функции" ("Edit Handler Permissions").

      3. В открывшемся окне добавьте права на выполнение ("Execution").

    5. В левой панели соединений выберите свой сервер IIS.

      1. Перейдите в функцию "Ограничения ISAPI и CGI".

      2. В правой панели действий нажмите "Добавить" ("Add") и заполните параметры:

        • Путь ISAPI или CGI ("ISAPI or CGI path") — "C:\naumen\nausd4\iis\isapi_redirect.dll"
        • Описание ("Description") — "tomcat"

        • Разрешить выполнение пути расширения ("Allow extension path to execute") — да

    6. В левой панели соединений ("Connections") выберите пулы приложений.

      1. В правой панели действий перейдите в "Дополнительные параметры" ("Advanced Settings").

      2. Убедитесь, что 32хбитные приложения выключены ("Enable 32-Bit Applications").

    7. В левой панели соединений ("Connections") выберите сайт, который необходимо проксировать.

      1. Перейдите в функцию "Фильтрация запросов" ("Request Filtering").

      2. В правой панели действий выберите "Изменить параметры" ("Change Settings"). Установите галочку в пункте "Разрешить двойное преобразование" ("Allow double escaping").

  3. Настройка коннектора Tomcat на работу по протоколу AJP.

    1. В конфигурационном файле tomcat/conf/server.xml отредактируйте строку, отвечающую за настройку AJP коннектора:

      <Connector port="8009" address="127.0.0.1" enableLookups="false" redirectPort="8443" protocol="AJP/1.3" URIEncoding="UTF-8" />

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

    2. В том же файле добавьте в основной HTTP коннектор Tomcat (на порту 8080) параметр address="127.0.0.1" или закомментируйте коннектор целиком.
    3. После изменения конфигурации Tomcat перезапустите службу.
  4. Проверьте доступность приложения через IIS.

    После произведенных настроек запросы в IIS должны проксироваться на Tomcat по протоколу AJP.

Настройка работы через SSL

Для разрешения работы через SSL (по протоколу https), выполните следующие действия:

  1. Создайте или проимпортируйте сертификат: в разделе Server → Сертификаты сервера.
  2. Настройте SSL binding в окне "Web Site".

  3. Настройте обязательность SSL: в окне Web Site → Параметры SSL поставьте флажок "Требовать SSL".

Перенаправление с HTTP на HTTPS

Для реализация автоматического перенаправления с http на https, выполните следующие действия:

  1. Отключите "Требовать SSL" в параметрах SSL для сайта.
  2. Создайте новое пустое правило для входящего трафика.

  3. Добавьте условие для правила, для этого нажмите кнопку Добавить в блоке "Условия".

    • в поле "Ввод условия" укажите {HTTPS};
    • в поле "Шаблон" укажите ˄OFF$.

  4. Добавьте действие для правила, для этого в блоке "Действие".

    • выберите тип действия "Перенаправление";
    • в поле "URL-адрес перенаправления" (блок "Свойства действия") укажите

      https://{HTTP_HOST}/{R:1};

    • выберите тип перенаправления "См. другое (303)";

  5. После создания правила, переместите его над остальными правилами.

  6. Проверьте работу автоматического перенаправления с http на https.