Особливості налаштування веб-серверів
Описано особливості налаштування 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.
Детальний опис установлення зворотного проксі-сервера слід шукати в документації до веб-сервера, що використовується в цій ролі.