# 3. Встановлення та налащтування балансувальника навантаження

<span lang="UK">Для встановлення балансувальника навантаження на відповідній віртуальній машині необхідно виконати наступні кроки:</span>

<span lang="UK">1. Закрити доступ до сторонніх репозиторіїв за допомогою виконання наступної команди:</span>

```
sudo sed -i 's/^[A-Za-z0-9]/#&/' /etc/apt/sources.list
```

<span lang="UK">2. Додати у операційну систему репозиторій з пакетами системи «Трембіта»:</span>

```
echo 'deb https://project-repo.trembita.gov.ua:8081/repository/ss-1.12.6/ bionic main' | sudo tee -a /etc/apt/sources.list
```

<span lang="UK">Перевірити результат виконання команд можна за допомогою текстового редактора nano, відкривши файл на редагування за допомогою виконання наступної команди:</span>

```
nano /etc/apt/sources.list
```

<span lang="UK">3. Додати GPG ключ репозиторію за допомогою виконання наступної команди:</span>

```
sudo wget -O - https://project-repo.trembita.gov.ua:8081//public-keys/public.key.txt | sudo apt-key add -
```

<span lang="UK">Якщо команду виконано успішно, буде виведено повідомлення «ОК».</span>

<span lang="UK">4. </span><span lang="RU">Оновити списки паке</span><span lang="UK">тів, та в</span><span lang="RU">становити </span>Nginx <span lang="RU">за допомогою </span><span lang="UK">за допомогою послідовного виконання наступних команд</span><span lang="RU">: </span>

```
sudo apt update
sudo apt install -y nginx
```

<span lang="RU">5. </span><span lang="UK">Створити файл /etc/nginx/conf.d/upstream.conf та відкрити його на редагування за допомогою виконання наступної команди:</span>

```
sudo nano /etc/nginx/conf.d/upstream.conf
```

<span lang="UK">6. Додати наступні рядки до новоствореного файлу:</span>

```
upstream ss_cluster {
  server <Your-security-server-1-IP>;
  server <Your-security-server-2-IP>;
}
```

<span lang="UK">де &lt;Your-security-server-1-IP&gt; — внутрішня (локальна) </span>IP<span lang="UK">-адреса першого шлюзу безпечного обміну, який буде працювати в кластері,</span>

<span lang="UK">&lt;Your-security-server-2-IP&gt; — внутрішня (локальна) </span>IP<span lang="UK">-адреса другого шлюзу безпечного обміну, який буде працювати в кластері.</span>

![](https://docs.trembita.gov.ua/uploads/images/gallery/2024-06/CrVibwGpyuwCCndE-embedded-image-wpaolroj.png)

<span lang="UK">7. Створити файл /etc/nginx/conf.d/</span>upstream<span lang="UK">\_</span>log<span lang="UK">\_</span>def<span lang="UK">.</span>conf <span lang="UK">та відкрити його на редагування за допомогою виконання наступної команди:</span>

```
sudo nano /etc/nginx/conf.d/upstream_log_def.conf
```

<span lang="UK">8. Додати наступні рядки до новоствореного файлу:</span>

```
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';
```

![](https://docs.trembita.gov.ua/uploads/images/gallery/2024-06/WtAHt65FeSJgM0cA-embedded-image-yif7215q.png)

<span lang="UK">9. Створити файл </span>/etc/nginx/sites-enabled/default <span lang="UK">та відкрити його на редагування за допомогою виконання наступної команди:</span>

```
sudo nano /etc/nginx/sites-enabled/default
```

<span lang="UK">10. Додати наступні рядки до новоствореного файлу (замінити вміст файлу, якщо даний файл не порожній):</span>

```
server {
    listen 80 default_server;
    listen [::]:80 default_server;
    location / {
        proxy_pass http://ss_cluster;
        access_log /var/log/nginx/access_upstream.log upstreamlog;
    }
}
```

<span lang="UK">![](https://docs.trembita.gov.ua/uploads/images/gallery/2024-06/jlJX1oGPSwY8koVT-embedded-image-lrjjyd03.png)</span>

<span lang="UK">11. Перевірити конфігурацію за допомогою виконання наступної команди:</span>

```
sudo nginx -t
```

<span lang="UK">Якщо перевірку конфігурації пройдено успішно, буде виведено повідомлення «</span>test is successful<span lang="UK">»:</span>

![](https://docs.trembita.gov.ua/uploads/images/gallery/2024-06/na7RrlY0PYyPMucS-embedded-image-rc7zsiav.png)

<span lang="UK">12. Перезавантажити сервіс NGINX за допомогою виконання наступної команди:</span>

```
sudo service nginx reload
```

<span lang="UK">Після закінчення налаштування балансувальника навантаження необхідно переналаштувати вебклієнт таким чином, щоб запити надсилались на мережеву адресу балансувальника навантаження (замість </span>IP<span lang="UK">-адреси шлюзу безпечного обміну необхідно вказати </span>IP<span lang="UK">-адресу балансувальника навантаження, інши параметри запиту залишити без зміни), який буде автоматично розподіляти запити між шлюзами безпечного обміну порівну. Шлях URL в запиті буде повністю переадресовуватися на шлю</span><span lang="RU">з</span><span lang="UK">и безпечного обміну</span>

<span lang="UK">Приклад запиту до </span>REST<span lang="RU">-</span><span lang="UK">сервісу через балансувальник навантаження буде виглядати наступним чином:</span>

```
http://<Load-Balancer-IP_address>/restapi
```

<span lang="UK">де &lt;</span>Load<span lang="UK">-</span>Balancer<span lang="UK">-</span>IP<span lang="UK">\_</span>address<span lang="UK">&gt; — локальна </span>IP<span lang="UK">-адреса балансувальника навантаження.</span>