3. Встановлення та налащтування балансувальника навантаження
Для встановлення балансувальника навантаження на відповідній віртуальній машині необхідно виконати наступні кроки:
1. Закрити доступ до сторонніх репозиторіїв за допомогою виконання наступної команди:
sudo sed -i 's/^[A-Za-z0-9]/#&/' /etc/apt/sources.list
2. Додати у операційну систему репозиторій з пакетами системи «Трембіта»:
echo 'deb https://project-repo.trembita.gov.ua:8081/repository/ss-1.12.6/ bionic main' | sudo tee -a /etc/apt/sources.list
Перевірити результат виконання команд можна за допомогою текстового редактора nano, відкривши файл на редагування за допомогою виконання наступної команди:
nano /etc/apt/sources.list
3. Додати GPG ключ репозиторію за допомогою виконання наступної команди:
sudo wget -O - https://project-repo.trembita.gov.ua:8081//public-keys/public.key.txt | sudo apt-key add -
Якщо команду виконано успішно, буде виведено повідомлення «ОК».
4. Оновити списки пакетів, та встановити Nginx за допомогою за допомогою послідовного виконання наступних команд:
sudo apt update
sudo apt install -y nginx
5. Створити файл /etc/nginx/conf.d/upstream.conf та відкрити його на редагування за допомогою виконання наступної команди:
sudo nano /etc/nginx/conf.d/upstream.conf
6. Додати наступні рядки до новоствореного файлу:
upstream ss_cluster {
server <Your-security-server-1-IP>;
server <Your-security-server-2-IP>;
}
де <Your-security-server-1-IP> — внутрішня (локальна) IP-адреса першого шлюзу безпечного обміну, який буде працювати в кластері,
<Your-security-server-2-IP> — внутрішня (локальна) IP-адреса другого шлюзу безпечного обміну, який буде працювати в кластері.

7. Створити файл /etc/nginx/conf.d/upstream_log_def.conf та відкрити його на редагування за допомогою виконання наступної команди:
sudo nano /etc/nginx/conf.d/upstream_log_def.conf
8. Додати наступні рядки до новоствореного файлу:
log_format upstreamlog '[$time_local] $remote_addr - $remote_user - $server_name $host to: $upstream_addr: $request $status upstream_response_time $upstream_response_time msec $msec request_time $request_time';
![]()
9. Створити файл /etc/nginx/sites-enabled/default та відкрити його на редагування за допомогою виконання наступної команди:
sudo nano /etc/nginx/sites-enabled/default
10. Додати наступні рядки до новоствореного файлу (замінити вміст файлу, якщо даний файл не порожній):
server {
listen 80 default_server;
listen [::]:80 default_server;
location / {
proxy_pass http://ss_cluster;
access_log /var/log/nginx/access_upstream.log upstreamlog;
}
}

11. Перевірити конфігурацію за допомогою виконання наступної команди:
sudo nginx -t
Якщо перевірку конфігурації пройдено успішно, буде виведено повідомлення «test is successful»:

12. Перезавантажити сервіс NGINX за допомогою виконання наступної команди:
sudo service nginx reload
Після закінчення налаштування балансувальника навантаження необхідно переналаштувати вебклієнт таким чином, щоб запити надсилались на мережеву адресу балансувальника навантаження (замість IP-адреси шлюзу безпечного обміну необхідно вказати IP-адресу балансувальника навантаження, інши параметри запиту залишити без зміни), який буде автоматично розподіляти запити між шлюзами безпечного обміну порівну. Шлях URL в запиті буде повністю переадресовуватися на шлюзи безпечного обміну
Приклад запиту до REST-сервісу через балансувальник навантаження буде виглядати наступним чином:
http://<Load-Balancer-IP_address>/restapi
де <Load-Balancer-IP_address> — локальна IP-адреса балансувальника навантаження.