Различия и методы оптимизации в конфигурационном файле PHP-FPM /etc/php/8.3/fpm/pool.d/

Всё ли в порядке после запуска сервера? На самом деле, в мире PHP-FPM конфигурационный файл — это настоящий главный фактор, определяющий стабильную, безопасную и эффективную работу сайта.

Какова конфигурация пула процессов для PHP-FPM?

PHP-FPM (FastCGI Process Manager) — это менеджер процессов для PHP, использующий концепцию «пулов» для управления процессами PHP для различных веб-сайтов или приложений.

每 一个 .conf Этот файл представляет собой определение пула, в котором указываются ключевые параметры, такие как пользователь, от имени которого выполняется процесс, порт или сокет, на котором он прослушивает запросы, путь к логам и количество процессов.

Иными словами, эти файлы являются своего рода «клонами» для вашего сервера, позволяя различным сайтам работать независимо друг от друга, не мешая друг другу.

Различия и методы оптимизации в конфигурационном файле PHP-FPM /etc/php/8.3/fpm/pool.d/

http://www.conf:默认的进程池

После установки PHP-FPM система автоматически сгенерирует www.conf 文件.

Его функция заключается в предоставлении пула по умолчанию, который работает «из коробки», обычно в режиме... www-data Пользователь.

Этот пул подходит для односайтовых сред, прост в настройке, и большинство параметров имеют общие значения, такие как:

  • user = www-data
  • group = www-data
  • listen = /run/php/php8.3-fpm.sock
  • pm.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Данная информация приведена лишь для ознакомления и не рекомендуется к применению.

Пример сравнения конфигураций

http://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Для приложений, работающих на нескольких площадках, мы настоятельно рекомендуем немедленно проверить и оптимизировать эти файлы пула процессов, особенно параметры пула процессов, чтобы сделать ваш сервер действительно надежным.

Блог Хоуп Чен Вейлян ( https://www.chenweiliang.com/ Статья "Различия и методы оптимизации конфигурационного файла PHP-FPM /etc/php/8.3/fpm/pool.d/", размещенная здесь, может оказаться вам полезной.

Добро пожаловать, чтобы поделиться ссылкой на эту статью:https://www.chenweiliang.com/cwl-33845.html

Чтобы раскрыть еще больше скрытых трюков🔑, присоединяйтесь к нашему каналу в Telegram!

Поделитесь и поставьте лайк, если вам понравилось! Ваши репосты и лайки — наша постоянная мотивация!

 

发表 评论

Ваш адрес электронной почты не будет опубликован. 必填 项 已 用 * 标注

Наверх