nginx — кластер php-fpm

У меня есть три сервера php-fpm и один сервер nginx, где я хочу сбалансировать php-fpm с помощью сервера nginx.

php-fpm server1 — 192.168.10.31
php-fpm server2 — 192.168.10.32
php-fpm server3 — 192.168.10.33

nginx — сервер — 192.168.10.12

Моя конфигурация на сервере nginx была;

upstream php_backend {
server 192.168.10.31:9000;
server 192.168.10.32:9000;
server 192.168.10.33:9000;
}

location ~ \.php$ {
fastcgi_pass php_backend;
}

Но моя проблема в том, где я должен определить webroot [root / path / to / webfiles]

Поскольку на сервере nginx [192.168.10.12] в журнале доступа указано, что файл не найден — 404. Где мне хранить php-файлы веб-сайта? На сервере nginx или php серверах? или на обоих серверах nginx и php?

3

Решение

Это своего рода старый вопрос, но я дам свой ответ всем, кто ищет это.

Комментарий Робби Аверилла верен. Вы должны размещать свои файлы на серверах Nginx и PHP. Вы можете сделать это с помощью общего ресурса NFS, но это может замедлить работу.

Чтобы обойти это, вы можете обновить свой код на сервере nginx, а затем rsync для серверов php.
Вы можете легко создать bash-скрипт, который делает что-то вроде:

rsync -avzp -e ssh /srv/www/ [email protected]:/srv/www/
rsync -avzp -e ssh /srv/www/ [email protected]:/srv/www/
rsync -avzp -e ssh /srv/www/ [email protected]:/srv/www/

Конечно, вы захотите включить это в один скрипт bash, который выполняет обновление вашего кода и синхронизирует машины php.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]