J'ai mis en place l'équilibrage de charge avec nginx et apache. le nginx est un proxy inverse et il y a 2 serveurs web Apache dans 2 systèmes séparés.pourquoi dans load-balancer avec nginx, il ne trouve pas de fichiers dans d'autres serveurs?
dans ma machine, quand je demande localhost
, cela fonctionne correctement. mais si je demande un fichier (par exemple info.php
) qui est disponible dans 2 autres serveurs, il ne peut pas le trouver et toutes les fois qu'il me montre le fichier local info.php
et ne montre jamais sur d'autres serveurs. si je supprime ce fichier (info.php
) de ma machine, il me montre erreur 404.
ceci est mes paramètres nginx:
upstream localhost {
ip_hash;
server 1.2.3.4;
server 1.2.3.5;
}
server {
listen 80;
listen [::]:80;
root /var/www/html;
index index.php index.html index.htm index.nginx-debian.html;
server_name localhost;
location/{
try_files $uri $uri/ =404;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_redirect off;
proxy_pass http://localhost;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
le fichier info.php
est disponible sur 2 autres serveurs.
je l'ai changé comme vous le dites, mais maintenant il faut environ 60 secondes pour charger la page d'index de apache, et même que précédemment, il ne peut pas montrer info.php fichier sur d'autres serveurs. – msln
Pourquoi afficherait-il 'info.php'? Votre 'location ~ \ .php $ {' envoie spécifiquement chaque requête PHP à 'fastcgi_pass unix: /run/php/php7.0-fpm.sock;' –
alors, que dois-je écrire à la place? juste commenter ou écrire quelque chose d'autre? – msln