digital-garden/dev/devops/nginx/Балансировка нагрузки в Nginx.md
Struchkov Mark 2199e79016
All checks were successful
continuous-integration/drone/push Build is passing
Большое обновление
2024-11-03 04:10:11 +03:00

64 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
aliases:
- Балансировка запросов на Nginx
tags:
- maturity/🌱
date: 2024-10-30
---
Блок `upstream` используется для указания списка серверов, между которыми nginx будет распределять входящие запросы, тем самым обеспечивая [[../../architecture/highload/Балансировка нагрузки|балансировку нагрузки]]. В блоке `upstream` перечисляются серверы, между которыми будет распределяться нагрузка.
```nginx
upstream myapp {
server server1.example.com;
server server2.example.com;
server server3.example.com;
}
```
Затем настройте блок `server`, чтобы перенаправлять запросы к вашему блоку `upstream`. В блоке `server` используйте директиву `proxy_pass` внутри `location`, как показано ниже:
```nginx
server {
listen 80;
location / {
proxy_pass http://myapp;
}
}
```
## Метод балансировки
Nginx поддерживает несколько методов балансировки нагрузки, включая round-robin (по умолчанию), least-connected и ip-hash. Вы можете выбрать нужный метод, добавив соответствующую директиву в блок `upstream`.
```nginx
upstream myapp {
least_conn;
server server1.example.com;
server server2.example.com;
server server3.example.com;
}
```
## Резервные сервера
Чтобы повысить отказоустойчивость, можно добавить резервные серверы, к которым будут перенаправляться запросы, если основные серверы недоступны:
```nginx
upstream myapp {
server server1.example.com;
server server2.example.com;
server server3.example.com;
server backup.example.com backup;
}
```
***
## Мета информация
**Область**:: [[../../../meta/zero/00 Nginx|00 Nginx]]
**Родитель**::
**Источник**::
**Создана**:: [[2024-10-30]]
**Автор**::
### Дополнительные материалы
-
### Дочерние заметки
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->