| 1 | # Playbook: nginx — администрирование (v1) |
| 2 | |
| 3 | > **Scope:** типовые настройки nginx, работа с PHP-FPM и proxy. Без привязки к конкретным доменам и путям. |
| 4 | |
| 5 | --- |
| 6 | |
| 7 | ## Ключевые понятия |
| 8 | |
| 9 | - **client_max_body_size:** максимальный размер тела запроса (по умолчанию 1M). При превышении — 413. Задаётся в http, server или location. |
| 10 | - **FastCGI / PHP-FPM:** nginx передаёт запросы приложению через FastCGI; PHP-FPM — менеджер процессов PHP. Связь через Unix-сокет или TCP. |
| 11 | - **stub_status:** модуль nginx для выдачи метрик (соединения, запросы) — для мониторинга (Zabbix и др.). |
| 12 | |
| 13 | --- |
| 14 | |
| 15 | ## Практики |
| 16 | |
| 17 | - **Права и пользователи:** отдельный пользователь/пул PHP-FPM на приложение; nginx под своим пользователем; nginx добавлен в группу владельца файлов сайта для чтения. Владелец файлов — пользователь приложения, не nginx. Избегать 777 и владения nginx:nginx на файлах приложения. |
| 18 | - **Связь с PHP-FPM:** предпочтительно Unix-сокет (`fastcgi_pass unix:/path/to/socket`); быстрее и без сетевого стека. |
| 19 | - **Безопасность:** заголовки X-Frame-Options, X-Content-Type-Options, X-XSS-Protection; запрет доступа к скрытым файлам `location ~ /\. { deny all; }`. |
| 20 | - **Статика:** отдавать статику из nginx, кэшировать; не проксировать её в PHP без необходимости. |
| 21 | |
| 22 | --- |
| 23 | |
| 24 | ## Типовая проблема: 413 |
| 25 | |
| 26 | - В нужном server/location задать `client_max_body_size 50M;` (или иное значение по требованиям). |
| 27 | - Проверка: `nginx -t`, затем `nginx -s reload`. |
| 28 | |
| 29 | --- |
| 30 | |
| 31 | ## Анти-паттерны |
| 32 | |
| 33 | - Общий пользователь для всех сайтов (www-data на всём) — смешение прав и рисков. |
| 34 | - Reload без `nginx -t`. |
| 35 | - Отсутствие лимита на размер тела при загрузке файлов — риск DoS и 413 без явной настройки. |
| 36 | |
| 37 | --- |
| 38 | |
| 39 | ## Диагностика |
| 40 | |
| 41 | Сводка: [`troubleshooting/playbook-ops-network-admin-troubleshooting-v1.md`](troubleshooting/playbook-ops-network-admin-troubleshooting-v1.md) § nginx / PHP-FPM. |
| 42 | |
| 43 | --- |
| 44 | |
| 45 | *Источники: документация nginx, практики настройки PHP-FPM. Конкретные виртуальные хосты и пути — в локальном контексте.* |
| 46 | |
| 47 | |