Из того, что я видел в различных документах и примерах конфигураций, вы можете настроить PHP-FPM на другом сервере / оборудовании, отдельно от вашего веб-сервера (в моем случае - nginx).
Хотя в большинстве примеров перечислены некоторые варианты этого:
location ~ \.php {
[various parameters]
fastcgi_pass 127.0.0.1:9000;
}
Вы можете перенаправить fastcgi_pass на любой IP-адрес (192.168.1.10 для безопасности или 200.55.35.40, сойти с ума!), Тем самым делегируя обработку PHP другому серверу.
Мои вопросы: эти отдельные серверы должны иметь файлы PHP, доступные в их файловой системе, верно? Если да, то как мне настроить корневой каталог для PHP для поиска файлов, учитывая, что это обычно делается в конфигурации nginx (в моем случае). Это через параметры chroot и chdir в конфигурации пула или что-то еще, что я отправляю как SCRIPT_FILENAME из nginx?
Теперь самая интересная часть (для меня): если файлы на этом сервере не нужны (а nginx предоставляет файл на порт ip: в fastcgi_pass), как работают включения?
Я как раз думал о том, чтобы установить кучу серверов PHP-FPM и позволить им нести нагрузку по обработке многосайтового узла Wordpress, без необходимости выполнять rsync тонны материала туда и обратно.
Файлы также должны существовать на внутреннем сервере PHP, и они должны находиться по тому же пути, что и на самом веб-сервере. PHP ничего не знает о переводе путей к файлам скриптов, поэтому он использует путь, который передается с внешнего сервера.
Самый простой способ сделать это - поместить все файлы в общее хранилище (т. Е. На монтирование NFS), которое затем монтируется в одну точку монтирования на всех серверах. Тогда вам не нужно выполнять никаких операций rsync или другого копирования.