Dans cet article, nous avons expliqué comment résoudre l'erreur nginx de délai d'attente de la passerelle Plesk 504.
Une opération ou un script qui prend plus de 60 secondes pour se terminer échoue sur un site Web hébergé dans Plesk : nginx 504 Gateway Time-out
Une opération ou un script qui prend plus de 60 secondes pour se terminer échoue sur un site Web avec :
nginx 504 Gateway Time-out
Le message d'erreur suivant apparaît sur la page des journaux du domaine ou dans le fichier journal des erreurs nginx du domaine /var/www/vhosts/system/example.com/logs/proxy_error_log :
[error] 1096#0: *25 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 203.0.113.2, server: example.com, request: "GET / HTTP/1.1', upstream: "fastcgi://unix:///var/www/vhosts/system/example.com/php-fpm.sock', host: "example.com'
L'opération échoue pour le script/la partie du site qui devrait s'exécuter plus de 60 secondes.
Solution
Pour tous les domaines
1. Connectez-vous au serveur Plesk via SSH.
2. Créez une sauvegarde du fichier /etc/nginx/nginx.conf :
# cp -p /etc/nginx/nginx.conf /etc/nginx/nginx.conf.back
3. Ouvrez le fichier /etc/nginx/nginx.conf dans un éditeur de texte. Dans cet exemple, nous utilisons l'éditeur vi :
# vi /etc/nginx/nginx.conf
4. Ajoutez les directives suivantes à la fin de la section 'http' pour augmenter le délai d'expiration à 180 secondes (3 minutes) :
http {
<…>
include /etc/nginx/conf.d/.conf;
proxy_send_timeout 180s;
proxy_read_timeout 180s;
fastcgi_send_timeout 180s;
fastcgi_read_timeout 180s;
}
Enregistrez les modifications et fermez le fichier.
Redémarrez le service nginx :
# service nginx restart
Réessayez l'opération qui a échoué sur le site Web. S'il échoue à nouveau, vous pouvez engager nos ingénieurs d'assistance pour résoudre le problème rapidement.
Pour un domaine
1. Dans Plesk, accédez à Domaines > example.com > Paramètres Apache et nginx.
2. Faites défiler jusqu'à Directives nginx supplémentaires et ajoutez les lignes suivantes au champ Directives nginx supplémentaires pour augmenter le délai d'expiration à 180 secondes (3 minutes) :
proxy_connect_timeout 180s;
proxy_send_timeout 180s;
proxy_read_timeout 180s;
fastcgi_send_timeout 180s;
fastcgi_read_timeout 180s
3. Appliquez les modifications.
4. Réessayez l'opération qui a échoué sur le site Web. S'il échoue à nouveau, vous pouvez engager nos ingénieurs d'assistance pour résoudre le problème rapidement.