Особенности настройки веб-серверов
Описаны особенности настройки IIS и Apache для работы с BAS: 32-разрядные модули, пулы процессов, URL, HTTPS, MIME-типы и встраивание веб-клиента. Также приведены требования к Reverse Proxy.. Internet Information Services. Apache. Reverse Proxy
Internet Information Services
32-разрядный вариант расширения веб-сервера в 64-разрядном варианте IIS
Если 32-разрядный вариант расширения веб-сервера используется в 64-разрядной версии операционной системы, необходимо указать веб-серверу, что он может выполнять 32-разрядные прикладные программы. Для этого следует:
- для IIS 5.1, IIS 6.0 — запустить командный интерпретатор и выполнить в нём следующую команду:
cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1
- для IIS 7.0 и более новых — открыть диалог основных настроек пула прикладной программы: Диспетчер служб IIS – <Конкретный сервер> – Пулы прикладных программ – <Нужный пул прикладных программ> – Дополнительные параметры. Установить для параметра Разрешены 32-разрядные приложения значение True/Истина.
Настройка пула прикладных программ
При настройке IIS следует помнить, что в пределах одного пула прикладных программ не может выполняться более одного из модулей расширения веб-сервера, отличающихся только третьей и четвёртой цифрами версии. Для организации такой работы следует использовать столько пулов прикладных программ, сколько различных версий модулей расширения планируется использовать, и вручную привязать каждую виртуальную прикладную программу веб-клиента к нужному пулу прикладных программ.
Если публикация обслуживает файловый вариант информационной базы, не рекомендуется разрешать веб-серверу создавать несколько рабочих процессов в одном пуле прикладных программ. Если в файловом варианте информационной базы используются фоновые задания, для корректной работы этого механизма количество рабочих процессов в пуле должно быть равно 1. Количеством рабочих процессов управляет параметр Диспетчер служб IIS – <Конкретный сервер> – Пулы прикладных программ – <Нужный пул прикладных программ> – Дополнительные параметры – Максимальное количество рабочих процессов (в группе параметров Модель процесса).
Настройка отображения ошибок
Если ошибки системы при работе с веб-сервером IIS версии 7.x и более новых отображаются текстом вида 500 – внутренняя ошибка сервера. Проблема с запрашиваемым ресурсом; ресурс не может быть отображён, следует изменить параметр, управляющий отображением ошибок. Для этого следует открыть диалог настройки параметров страниц ошибок: Диспетчер служб IIS – <Конкретный сервер> – сайты – <Default Web Site> – <Имя виртуальной прикладной программы> – Страницы ошибок – Изменить параметры... В открывшемся диалоге для параметра Если сервер обнаружил ошибку, следует выбрать значение Подробные сообщения об ошибках. Затем нажать кнопку ОК.
Настройка максимальной длины URL
При обращении к стандартному интерфейсу OData URL может быть достаточно длинным. По умолчанию IIS ограничивает URL 260 символами. Чтобы изменить это ограничение, следует с правами администратора в системном реестре, в разделе HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters, создать параметр UrlSegmentMaxLength типа DWORD. В этом параметре необходимо установить значение, большее максимальной длины текущего запроса, или значение 0, чтобы настроить неограниченную длину URL. После изменения необходимо перезагрузить компьютер, на котором установлен IIS.
Настройка HTTPS-соединения
В некоторых случаях при загрузке больших объёмов данных через HTTPS-соединение, если используется веб-сервер IIS, могут возникать ошибки. В таких случаях рекомендуется попробовать использовать протокол TLS 1.2 или TLS 1.1. Для IIS 7.5 и более новых (Windows Server 2008 R2, Windows 7 и более новых) можно включить использование протоколов TLS 1.1 и более новых. Для этого необходимо выполнить следующие действия:
1. В системном реестре, в разделе HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server, создать параметр DisableByDefault типа DWORD и установить для него значение 0.
2. В системном реестре, в разделе HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server, создать параметр DisableByDefault типа DWORD и установить для него значение 0.
3. Указанные действия следует выполнять от имени пользователя, имеющего административные права.
Затем следует перезагрузить компьютер, на котором установлен IIS.
Обновление клиентской программы
Для обновления клиентской прикладной программы необходимо, чтобы для расширения .zip был установлен один из следующих MIME-типов: application/x-zip-compressed (настройка веб-сервера IIS по умолчанию) или application/zip (рекомендация IANA).
Чтобы установить или проверить MIME-тип, необходимо выполнить следующие действия:
- В настройках всего веб-сервера: Диспетчер служб IIS – группа IIS – Типы MIME.
- В настройках сайта: Диспетчер служб IIS – сайты – <выбранный веб-сайт> – группа IIS – Типы MIME.
- В настройках страницы сайта: Диспетчер служб IIS – сайты – <выбранный веб-сайт> – <выбранная страница сайта> – группа IIS – Типы MIME.
- В списке Типы MIME найти запись для расширения .zip и проверить, соответствует ли указанный MIME-тип типам, поддерживаемым системой. Если запись для расширения .zip в этом списке отсутствует, её необходимо создать.
Встраивание веб-клиента
Если необходимо организовать встраивание веб-клиента в какой-либо сайт, рекомендуется следующим образом настроить заголовок ответа X-Frame-Options для программы веб-клиента:
- Если внешний сайт и веб-клиент опубликованы на одном веб-сервере, заголовок должен принимать значение sameorigin.
- Если внешний сайт и веб-клиент опубликованы на разных веб-серверах, заголовок должен принимать значение allow-from %ВебСайт%. Здесь %ВебСайт% означает URL (протокол, домен и порт) внешнего сайта, на котором планируется использовать встроенный веб-клиент.
- Если веб-клиент не должен иметь возможности интеграции во внешний веб-сайт, заголовок должен принимать значение deny.
Если нет необходимости в тонкой настройке заголовка ответа, достаточно убедиться, что в настройках программы веб-клиента отсутствует заголовок ответа X-Frame-Options со значением deny.
Apache
Общие особенности
При публикации файлового варианта информационной базы на веб-сервере Apache 2.2, работающем под управлением ОС Windows, рекомендуется дополнить конфигурационный файл веб-сервера Apache (httpd.conf) следующим фрагментом:
<IfModule mpm_winnt_module> ThreadStackSize 8388608 </IfModule>
Если при работе информационной базы возникают проблемы, связанные с исчерпанием стека на стороне веб-сервера, рекомендуется увеличить значение параметра ThreadStackSize. Подробное описание параметра ThreadStackSize: http://httpd.apache.org/docs/2.2/mod/mpm_common.html#ThreadStackSize (на английском языке).
При использовании веб-сервера Apache версии 2.2 и более новых под управлением Linux рекомендуется использовать модуль многопроцессной обработки worker. Подробное описание этого модуля: https://httpd.apache.org/docs/2.2/mod/worker.html (на английском языке) или https://httpd.apache.org/docs/2.4/mod/worker.html (на английском языке). Если публикация обслуживает файловый вариант информационной базы, не рекомендуется разрешать веб-серверу создавать несколько рабочих процессов, обслуживающих одну публикацию. Если в файловом варианте информационной базы используются фоновые задания, для корректной работы этого механизма количество рабочих процессов в пуле должно быть равно 1. Чтобы управлять количеством рабочих процессов, следует установить параметр ServerLimit 1 в разделе настроек модуля worker (раздел <IfModule worker.c> </IfModule>) конфигурационного файла веб-сервера. Если модуль многопроцессной обработки отличается от рекомендованного, порядок настройки количества рабочих процессов следует искать в документации к модулю.
Алгоритм поиска установленного веб-сервера
Apache версии 2.0
Для ОС Windows
Обнаружение сервиса:
- Выполняется попытка прочитать значение параметра системного реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Apache2\ImagePath.
- В полученном значении фрагмент Apache2.exe заменяется на conf\httpd.conf.
- Если по полученному пути существует файл, веб-сервер Apache версии 2.0 считается обнаруженным.
Обнаружение каталога установки в реестре:
- Выполняется попытка получить доступ к разделу реестра HKEY_LOCAL_MACHINE\Software\Apache Software Foundation\Apache.
- Если попытка не удаётся, выполняется попытка получить доступ к разделу реестра HKEY_CURRENT_USER\Software\Apache Software Foundation\Apache.
- В открытом разделе считывается значение 2.0\ServerRoot.
- К значению параметра добавляется строка conf\httpd.conf.
- Если по полученному пути существует файл, веб-сервер Apache версии 2.0 считается обнаруженным.
Обнаружение по каталогу установки по умолчанию:
- Выполняется поиск файла конфигурации (httpd.conf) в каталоге установки по умолчанию: C:\Program Files\Apache Software Foundation\Apache2\conf.
- Если файл найден, веб-сервер Apache 2.0 считается обнаруженным.
Для ОС Linux
Поиск файла конфигурации (httpd.conf) выполняется в каталоге /etc/httpd/conf/.
Apache версии 2.2
Для ОС Windows
Обнаружение сервиса:
- Выполняется попытка прочитать значение параметра системного реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Apache2.2\ImagePath.
- В полученном значении фрагмент Apache2.exe заменяется на conf\httpd.conf.
- Если по полученному пути существует файл, веб-сервер Apache версии 2.2 считается обнаруженным.
Обнаружение каталога установки в реестре:
- Выполняется попытка получить доступ к разделу реестра HKEY_LOCAL_MACHINE\Software\Apache Software Foundation\Apache.
- Если попытка не удаётся, выполняется попытка получить доступ к разделу реестра HKEY_CURRENT_USER\Software\Apache Software Foundation\Apache.
- В открытом разделе считывается значение 2.2\ServerRoot.
- К значению параметра добавляется строка conf\httpd.conf.
- Если по полученному пути существует файл, веб-сервер Apache версии 2.2 считается обнаруженным.
Обнаружение по каталогу установки по умолчанию:
- Выполняется поиск файла конфигурации (httpd.conf) в каталоге установки по умолчанию: C: Program Files Apache Software Foundation Apache2.2 conf.
- Если файл найден, веб-сервер Apache 2.2 считается обнаруженным.
Для ОС Linux
Поиск файла конфигурации (apache2.conf) выполняется в каталоге http://etc/apache2/.
Apache версии 2.4
Для ОС Windows
Обнаружение сервиса:
- Выполняется попытка прочитать значение параметра системного реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Apache2.2\ImagePath.
- В полученном значении фрагмент Apache2.exe заменяется на conf\httpd.conf.
- Если по полученному пути существует файл, веб-сервер Apache версии 2.4 считается обнаруженным.
Обнаружение каталога установки в реестре:
- Выполняется попытка получить доступ к разделу реестра HKEY_LOCAL_MACHINE\Software\Apache Software Foundation\Apache.
- Если попытка не удаётся, выполняется попытка получить доступ к разделу реестра HKEY_CURRENT_USER\Software\Apache Software Foundation\Apache.
- В открытом разделе считывается значение 2.4\ServerRoot.
- К значению параметра добавляется строка conf\httpd.conf.
- Если по полученному пути существует файл, веб-сервер Apache версии 2.4 считается обнаруженным.
Обнаружение по каталогу установки по умолчанию:
- Выполняется поиск файла конфигурации (httpd.conf) в каталоге установки по умолчанию: C: Program Files Apache Software Foundation Apache2.4 conf.
- Если файл найден, веб-сервер Apache 2.4 считается обнаруженным.
Для ОС Linux
Поиск файла конфигурации (apache2.conf) выполняется в каталоге http://etc/apache2/.
Встраивание веб-клиента
Если необходимо организовать встраивание веб-клиента в какой-либо сайт, рекомендуется настроить заголовок ответа X-Frame-Options в разделе нужной публикации конфигурационного файла веб-сервера (httpd.conf) следующим образом:
- Если внешний сайт и веб-клиент опубликованы на одном веб-сервере, в конфигурационный файл следует добавить строку:
LoadModule headers_module modules/mod_headers.so Header set X-Frame-Options "sameorigin"
- Если внешний сайт и веб-клиент опубликованы на разных веб-серверах, в конфигурационный файл следует добавить строки:
LoadModule headers_module modules/mod_headers.so Header set X-Frame-Options "allow-from %ВебСайт%"
- В этом выражении %ВебСайт% означает URL (протокол, домен и порт) внешнего сайта, на котором планируется использовать встроенный веб-клиент.
- Если веб-клиент не должен интегрироваться во внешний веб-сайт, в конфигурационный файл следует добавить строку:
LoadModule headers_module modules/mod_headers.so Header set X-Frame-Options "deny"
Если нет необходимости в тонкой настройке заголовка ответа, достаточно убедиться, что в конфигурационном файле отсутствует строка:
LoadModule headers_module modules/mod_headers.so Header set X-Frame-Options "deny"
Reverse Proxy
Reverse proxy (обратный прокси-сервер) — это прокси-сервер, который ретранслирует запросы клиентов из внешней сети на один или несколько серверов, расположенных во внутренней сети. Может использоваться для балансировки нагрузки и повышения безопасности.
Если доступ к веб-серверам, на которых опубликованы информационные базы BAS, осуществляется через reverse proxy, ненадлежащая настройка reverse proxy может привести к неработоспособности некоторых механизмов. Это может происходить потому, что запрос на веб-сервер системы поступает не от внешней клиентской прикладной программы, а от компьютера, на котором установлен reverse proxy. «Внешняя» клиентская прикладная программа — это клиентская программа, которая подключается к reverse proxy, а он уже перенаправляет запрос на веб-сервер, на котором опубликована информационная база BAS.
Чтобы система могла корректно определять HTTP-запрос клиентской прикладной программы и некоторые его параметры, следует настроить reverse proxy так, чтобы:
- Для «восстановления» HTTP-запроса при перенаправлении HTTP-запроса соответствующим образом формировались заголовки запроса X-Forwarded-Port, X-Forwarded-Host и X-Forwarded-Proto.
- Для корректного определения IP-адреса внешней клиентской программы при перенаправлении HTTP-запроса соответствующим образом формировался заголовок запроса X-Forwarded-For.
Подробное описание установки обратного прокси-сервера следует искать в документации к веб-серверу, используемому в этой роли.