Je cherche autour de moi mais je ne pouvais pas trouver une réponse directe, si quelqu'un pouvait clarifier cela, seraient grandement apprécié, merci!
location ~ \.php$ {
try_files $uri = 404;
fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
include fastcgi.conf;
}
OU ET?
upstream php {
server unix:/run/php-fpm/php-fpm.sock;
}
Merci!
J'ai trouvé cela, à partir de nginx
1.6.2 au moins, la syntaxe de travail pour moi pour le bloc d'emplacement est:
location ~ \.php$ {
try_files $uri = 404;
fastcgi_pass php;
fastcgi_index index.php;
include fastcgi.conf;
}
c'est-à-dire que cela ne devrait pas spécifier le http://
Protocole avant de référencer le backend PHP. Les http://php
Syntaxe doit être utilisée avec le proxy_pass
instruction, pas fastcgi_pass
.
location
est utilisé pour correspondre aux expressions et créer des règles pour eux.
upstream
Définit les serveurs pouvant être référencés.
Dans votre exemple, cela signifie que si vous voulez obtenir un équivalent pour
location ~ \.php$ {
try_files $uri = 404;
fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
include fastcgi.conf;
}
, tu aurais besoin
upstream php {
server unix:/run/php-fpm/php-fpm.sock;
}
location ~ \.php$ {
try_files $uri = 404;
fastcgi_pass php;
fastcgi_index index.php;
include fastcgi.conf;
}
L'avantage du bloc amont est que vous pouvez configurer plus d'un serveur/port/service comme en amont et distribuez le trafic sur eux, par exemple comme celui-ci:
upstream php {
server 127.0.0.1:8080 max_fails=3 fail_timeout=30s;
server 192.68.1.2 weight=5;
server unix:/run/php-fpm/php-fpm.sock;
}
Vous pouvez trouver plus d'informations à ce sujet dans la documentation NGinx: