Как добавить пул к FPM (nginx) без перезагрузки/перезапуска fpm самой?

Пока кошка 5 была правильно экранирована и связалась, она должна теоретически работать (хотя это должно было быть непомерно дорого). Однако этому не рекомендуют практику, и я думаю, не передает tia-607. См. "CAT 5 Установки"

3
задан 13 April 2011 в 17:38
4 ответа

Извините за ответ на мой собственный вопрос, но я нашел это решение, которое именно то, что я искал... 3 года назад ;)

В принципе, идея в том, чтобы иметь init-скрипт для каждого пула, с небольшими модификациями он работает как шарм.

Извините, если я не буду повторять шаги здесь, но на самом деле, это будет просто copy'n'paste из этой ссылки!

Дальнейшее прочтение: php-fpm ondemand с systemd

Hope help someone ;)

0
ответ дан 3 December 2019 в 05:17

Я не полагаю, что существует любой способ добавить пул, не перезапуская/перезагружая (согласно этому).

Я действительно думаю, что дублирование является лучшим подходом к этому, я действительно верю, что Вы могли бы выполнить то, с чем Вы хотите reload. Так как это - корректная перезагрузка, это должно ожидать процессов для окончания.

По существу передайте SIGUSR2 предупредите к php-fpm, и он корректно перезагрузит всех рабочих +, перезагружают fpm conf/binary.

Я полагаю что суммы к

kill -USR2 `cat $php_fpm_PID`

Так, Вы изменяете conf - и перезагрузка - не должна заканчиваться в значимое время простоя.

Другая опция состоит в том, чтобы выполнить один процесс на пользователя - можно добавить новых пользователей, не завершая существующие процессы, но требования к ресурсам значительно выше (и, для 1 000 +, пользователи, вероятно, не будут практичны).

Еще одна опция состоит в том, чтобы создать временный процесс php-cgi для нового пользователя и задержку, перезагрузив сервер до позже (т.е. низко загрузить период, или когда у Вас есть многочисленные пользователи для добавления). Это уменьшило бы время простоя, но все еще сразу подняло бы субдомен нового пользователя.

Ни одно из вышеупомянутого не точно идеально, и единственным практическим решением никакого времени простоя были бы несколько подход сервера.

5
ответ дан 3 December 2019 в 05:17

Если Вы не можете позволить себе какое-либо время простоя, единственная опция состоит в том, чтобы добавить дублирование

  1. позвольте некоторой подсистеме балансировки нагрузки, выполненной перед 2 (или больше) серверы.
  2. настройте горячее резервирование путем, Вы хотите его
  3. переключиться
  4. настройте "новое" горячее резервирование путем, Вы хотите его
  5. промывка и повторение каждый раз Вам нужно изменение

Править: очень хорошо возможно выполнить установку как это со всего одной частью аппаратных средств. Просто добавьте больше экземпляров работы nginx другого дюйм/с и создайте установку обработки отказа между теми. Если эта опция имеет смысл для Вашего варианта использования, не мое дело решать.

2
ответ дан 3 December 2019 в 05:17

Это кажется, что Вы застреваете для ресурсов. Почему бы не выполнять два веб-сервера на тех же аппаратных средствах?

Попробуйте что-то вроде этого:

+---------------+
|    nginx :80  |
|   /     \     |
| :8081  :8080  |
+---------------+

Таким образом Ваш сервис выравнивания нагрузки (nginx в этом случае) может направить между двумя портами. Таким образом можно заняться сервисом или вниз так часто, как Вы хотели бы (за обновления) и т.д.

Конечно, Вам были бы нужны два пула FPM, два пользователя, и т.д.

0
ответ дан 3 December 2019 в 05:17

Теги

Похожие вопросы