Каталог статей
Чи все гаразд після запуску сервера? Насправді, у світі PHP-FPM, файл конфігурації є справжнім рушійним механізмом, який визначає, чи сайт може працювати стабільно, безпечно та ефективно.
Яка конфігурація пулу процесів для PHP-FPM?
PHP-FPM (FastCGI Process Manager) — це менеджер процесів для PHP, який використовує концепцію «пулів» для керування процесами PHP для різних веб-сайтів або програм.
Кожен .conf Файл є визначенням пулу, яке визначає ключові параметри, такі як користувач, на якому виконується процес, порт або сокет, який він прослуховує, шлях журналу та кількість процесів.
Іншими словами, ці файли є своєрідними «клонами» для вашого сервера, що дозволяють різним сайтам працювати незалежно, не заважаючи один одному.

www.conf: Пул процесів за замовчуванням
Після встановлення PHP-FPM система автоматично згенерує www.conf файл.
Його функція полягає в тому, щоб забезпечити пул за замовчуванням, який працює "з коробки", зазвичай запускаючись у... www-data Користувач.
Цей пул підходить для середовищ з одним сайтом, його легко налаштувати, а більшість параметрів є загальними значеннями, такими як:
user = www-datagroup = www-datalisten = /run/php/php8.3-fpm.sockpm.max_children = 5
Якщо ви працюєте лише на одному сайті, цього достатньо.
etНЛО.org.conf: Пул користувацьких сайтів
Якщо у вас кілька сайтів, вам потрібно створити окремий пул для кожного сайту.
такий як etufo.org.confЦе спеціально для доменних імен. etНЛО. Org Ексклюзивна конфігурація.
Поширена практика така:
- Вкажіть різних користувачів та групи, наприклад
user = etufo,group = etufo - Налаштуйте окремий порт або сокет прослуховування, наприклад
listen = /run/php/etufo.sock - Відрегулюйте кількість процесів, щоб забезпечити стабільність сайту за умов високої паралельності.
- Незалежні файли журналів полегшують усунення несправностей.
Перевагою такого підходу є ізоляція безпеки: навіть якщо один сайт буде атаковано, інші сайти не постраждають.
dummy.conf: Приклад або файл-заповнювач
dummy.conf Зазвичай це шаблони або приклади, надані системою.
Він не буде фактично ввімкнений, якщо ви вручну не зміните та не ввімкнете його.
Його мета — надати вам довідник та показати, як написати нову конфігурацію пулу.
Таким чином, це більше схоже на «інструкцію з експлуатації», ніж на фактичну конфігурацію для роботи.
Навіщо використовувати кілька файлів пулу?
- 性Різні сайти повинні керуватися різними користувачами, щоб уникнути дублювання дозволів.
- 性能优化Кількість процесів можна встановити індивідуально для кожного пулу та скоригувати відповідно до потреб трафіку.
- ІзоляціяЖурнали, вивід помилок та порти прослуховування розділені, що спрощує усунення несправностей.
Наприклад, якщо www.conf Воно зруйнувалося.etufo.org.conf Він все ще може працювати нормально і не виведе з ладу весь сервер.
Сценарії практичного застосування
- Односайтовий серверВикористовуйте лише
www.confЦього достатньо. - Багатосайтовий серверСтворіть по одному для кожного сайту
.confФайли, такі якetufo.org.conf. - dummy.confТільки для довідки, не рекомендується.
Приклад порівняння конфігурацій
www.conf (пул за замовчуванням)
[www]
user = www-data
group = www-data
listen = /run/php/php8.3-fpm.sock
pm = dynamic
pm.max_children = 5
etufo.org.conf (Налаштований пул)
[etufo.org]
user = etufo
group = etufo
listen = /run/php/etufo.sock
pm = dynamic
pm.max_children = 20
access.log = /var/log/php-fpm/etufo.access.log
Ви побачите, що різниця полягає в користувачеві, адресі прослуховування та кількості процесів.
Налаштування параметрів пулу процесів PHP-FPM
Якщо конфігурація використовує динамічний параметр , це спосіб попереднього запуску деяких робочих процесів та динамічного налаштування на основі обсягу запитів, що забезпечує швидшу реакцію, коли обсяг запитів різко зростає.
Для веб-сайтів з певним обсягом трафіку рекомендується використовувати pm = dynamicОскільки він може підтримувати певну кількість простоїв процесів та уникати 500 помилок під час високої паралельності.
Рекомендується використовувати його лише тоді, коли обсяг доступу надзвичайно низький, а ресурси пам'яті обмежені. pm = ondemand Щоб заощадити ресурси.
Рекомендується змінити його на динамічний та оптимізувати. pm.max_children І інші параметри:
pm = dynamic
pm.max_children = 16 ; 根据服务器资源调整,建议值:CPU 核心数 × 2
pm.start_servers = 4 ; 初始进程数,建议设为 max_children × 25%
pm.min_spare_servers = 2 ; 最小空闲进程数
pm.max_spare_servers = 7 ; 最大空闲进程数
pm.max_requests = 3000 ; 每个子进程处理完 3000 个请求后自动重启
pm.process_idle_timeout = 10s ; 空闲进程 10s 后自动退出
Така конфігурація забезпечує продуктивність, уникаючи водночас марнування ресурсів.
Для отримання детальних інструкцій з налаштування, будь ласка, зверніться до наступного посібника ▼
Згідно з офіційною документацією PHP:
«Кожен пул можна налаштувати незалежно, що дозволяє використовувати різних користувачів, обмеження та параметри для кожної програми».
Це твердження чітко вказує на важливість конфігурації з кількома пулами: незалежність, гнучкість та керованість.
Висновок: Моя точка зору
Конфігурація сервера подібна до диригента в оркестрі, який визначає, як має гратися кожен інструмент.
www.conf Це диригент за замовчуванням, що підходить для сольних виступів;etufo.org.conf Це диригент, створений спеціально для певної сцени; та dummy.conf Це чернетка музичних партитур, що нагадує вам, як писати нові мелодії.
В епоху, зосереджену на інформаційній безпеці та оптимізації продуктивності, знання того, як правильно використовувати ці файли конфігурації, є ключовим для контролю життєздатності сервера.
Конфігурація — це не просто тривіальний текст; це душа сервера.
Якщо ви використовуєте кілька сайтів WordPress , наполегливо рекомендується негайно перевірити та оптимізувати ці файли пулу, особливо налаштування параметрів пулу процесів, щоб зробити ваш сервер справді надійним.
Сподіваємося, що стаття «Відмінності та методи оптимізації файлу конфігурації PHP-FPM /etc/php/8.3/fpm/pool.d/», опублікована в блозі Ченя Вейляна ( https://www.chenweiliang.com/ ), буде вам корисною.
Не соромтеся поділитися посиланням на цю статтю: https://www.chenweiliang.com/cwl-33845.html

