У меня 10 серверов NodeJS, работающих на 10 отдельных машинах.
Они работают с Forever, который поддерживает их работу в случае сбоя и перезапускает их при изменении файла.
Я хотел бы перезапустить их, нажав на кнопку на странице HTML. Поскольку nodeJS не открыт для внешнего мира, а доступен только внутри машин, я хотел бы использовать PHP-скрипт в качестве «моста» между внешним миром и Node. Кнопка отправит POST-запрос в PHP-скрипт, который затем каким-то образом скажет Forever перезапустить процесс NodeJS.
Первый вопрос: нужно ли иметь скрипт PHP на каждом сервере и попросить каждый из этих скриптов перезапустить NodeJS на своей машине? Или я могу иметь один сервер с PHP-скриптом, который мог бы каким-то образом уведомить все серверы (я знаю их локальные IP-адреса, конечно), чтобы перезапустить их процессы NodeJS?
Я думал об этом, посылая сигналы процесса, но, конечно, я не могу сделать это по сети.
Как вы думаете ?
Я закончил тем, что использовал опцию Watch в Forever, которая прослушивает изменения файлов в папке. Кнопка перезапуска обновляет файл «timestamp», который навсегда перезапускается. Из-за репликации NFS это распространяется на все машины. Не лучшее решение, я думаю, оно работает, но я бы с удовольствием сделал что-то лучше
Других решений пока нет …