diff --git a/ARCHITECTURE.md b/ARCHITECTURE.md index 73eacba..3197660 100644 --- a/ARCHITECTURE.md +++ b/ARCHITECTURE.md @@ -116,6 +116,7 @@ waf-host-02 | instance-c - ptaf_fallback_code # Код ответа ptaf_fallback: число или 'pass' (дефолт: 418) - sp_antiddos # Использовать антиддос сети в set_real_ip (дефолт: true) - real_ip_networks # Кастомные сети для set_real_ip если sp_antiddos = false (inet[]) +- worker_processes # Количество worker процессов nginx внутри контейнера (дефолт: 4) ``` **Важно:** `waf_instance` определяет на каком хосте должен работать клиент @@ -559,7 +560,7 @@ PTAF-TB-docker-AZ1-node04 → {clientTitle}_AZ1_n04_a001 ### Производительность ```go -DefaultWorkerProcesses = 4 // Nginx worker processes +DefaultWorkerProcesses = 4 // Nginx worker processes (дефолт, переопределяется в client_info) DefaultWorkerConnections = 64000 // Соединений на worker worker_rlimit_nofile = 1048576 // Лимит файловых дескрипторов ``` @@ -795,7 +796,13 @@ UPDATE client_info SET ptaf_fallback_code = 'pass' WHERE client_title = 'CLIENT0 UPDATE client_info SET ptaf_fallback_code = '503' WHERE client_title = 'CLIENT001'; ``` -### Отключить антиддос для клиента (кастомные real_ip сети) +### Настроить количество worker процессов + +```sql +UPDATE client_info SET worker_processes = 8 WHERE client_title = 'CLIENT001'; +``` + +Изменение вызывает `nginx -s reload` внутри контейнера без пересоздания контейнера. ```sql UPDATE client_info diff --git a/DATABASE_SCHEMA.md b/DATABASE_SCHEMA.md index 3d19815..d7afa3b 100644 --- a/DATABASE_SCHEMA.md +++ b/DATABASE_SCHEMA.md @@ -101,6 +101,7 @@ WHERE hostname = $1 AND instance = $2; | `ptaf_fallback_code` | TEXT | Код ответа ptaf_fallback: число или 'pass' | `418` | | `sp_antiddos` | BOOLEAN | Использовать антиддос сети в set_real_ip | `true` | | `real_ip_networks` | INET[] | Кастомные сети для set_real_ip (если sp_antiddos=false) | `{10.0.0.0/8}` | +| `worker_processes` | INTEGER | Количество worker процессов nginx | `4` | ### Используемые запросы @@ -119,7 +120,8 @@ SELECT shm_size, ptaf_fallback_code, sp_antiddos, - real_ip_networks + real_ip_networks, + worker_processes FROM client_info WHERE waf_instance = $1; ``` @@ -141,7 +143,8 @@ SELECT shm_size, ptaf_fallback_code, sp_antiddos, - real_ip_networks + real_ip_networks, + worker_processes FROM client_info WHERE client_title = $1; ``` @@ -171,6 +174,9 @@ ALTER TABLE client_info ALTER TABLE client_info ADD COLUMN IF NOT EXISTS real_ip_networks INET[] DEFAULT NULL; + +ALTER TABLE client_info + ADD COLUMN IF NOT EXISTS worker_processes INTEGER DEFAULT 4; ``` ### Ключевые поля @@ -206,6 +212,14 @@ UPDATE client_info SET ptaf_fallback_code = 'pass' WHERE client_title = 'CLIENT0 UPDATE client_info SET ptaf_fallback_code = '503' WHERE client_title = 'CLIENT001'; ``` +#### worker_processes + +Количество worker процессов nginx внутри контейнера. Изменение вызывает `nginx -s reload` без пересоздания контейнера. Дефолт: 4. + +```sql +UPDATE client_info SET worker_processes = 8 WHERE client_title = 'CLIENT001'; +``` + #### sp_antiddos / real_ip_networks `sp_antiddos = true` (дефолт) — в Angie используются антиддос сети из таблицы `ips` для `set_real_ip_from`. @@ -583,6 +597,9 @@ SELECT client_title FROM client_info WHERE debug = true; -- Клиенты с индивидуальным образом SELECT client_title, docker_image FROM client_info WHERE docker_image IS NOT NULL; +-- Клиенты с нестандартным количеством worker процессов +SELECT client_title, worker_processes FROM client_info WHERE worker_processes != 4; + -- Клиенты без антиддоса SELECT client_title, real_ip_networks FROM client_info WHERE sp_antiddos = false;