2016-05-24 12 views
2

Ich habe einen drei php-fpm-Server, und einen Nginx-Server, wo ich php-fpm mit Nginx-Server laden möchte.nginx - php-fpm Cluster

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

nginx - Server - 192.168.10.12

Meine Konfiguration auf nginx Server war;

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; 
} 

Aber mein Problem ist, wo soll ich die Webroot [root/path/to/webfiles] definieren

Da auf nginx Server [192.168.10.12], sagt Zugriffsprotokoll Datei nicht gefunden - 404. Wo sollte ich PHP-Dateien auf der Website halten? Auf Nginx-Server oder PHP-Servern? oder in beiden Nginx und PHP-Servern?

+0

Wahrscheinlich beide. Können Sie sie mit einer NFS-Freigabe oder etwas mounten? –

Antwort

1

Das ist eine alte Frage, aber ich gebe meine Antwort hier für jeden, der das googelt.

Robbie Averills Kommentar ist korrekt. Sie sollten Ihre Dateien sowohl auf Nginx- als auch auf PHP-Servern hosten. Sie können dies mit einer NFS-Freigabe tun, aber dies könnte die Dinge verlangsamen.

Um dies zu umgehen, könnten Sie Ihren Code auf dem Nginx-Server aktualisieren und dann Rsync zu den PHP-Servern. Sie könnte leicht ein Bash-Skript erstellen, die etwas tut, wie:

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/ 

Natürlich würden Sie diese in ein Bash-Skript enthalten sein sollen, dass die Aktualisierung des Codes der Fall ist, und synchronisiert die PHP-Maschinen.