1 votes

Nginx + php5-fpm: Ressource temporairement indisponible

J'ai un nginx (dans un conteneur Docker Debian) avec cette configuration pour une application Symfony :

location ~ ^/api/(app|app_dev|config)\.php(/|$) {
    root /var/www/backend/web/;
    fastcgi_split_path_info ^/api/(.+\.php)(/.+)$;
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
    fastcgi_param HTTPS off;
}

L'emplacement est reconnu correctement, le SCRIPT_FILENAME pointe vers le bon fichier. Cependant, j'obtiens

recv() not ready (11: Resource temporarily unavailable)

dans les logs de débogage de nginx chaque fois que je fais une requête. nginx répond avec 504 Gateway Time-out.

Il y a des travailleurs fpm inactifs qui se rétablissent dès que je les tue, ce qui me semble correct puisqu'il s'agit d'un pool. J'ai essayé d'utiliser 127.0.0.1:9000 au lieu du socket, mais c'est pareil. Il ne s'agit probablement pas d'une question de charge ou de mémoire, il y a beaucoup de RAM disponible et je ne fais qu'une seule requête, la charge CPU est de 0,0.

Comment puis-je faire fonctionner FPM avec nginx ?

0voto

Michael Hampton Points 232226

Les choses évidentes que je vois dans votre extrait de configuration sont des caractères / égarés :

    fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;

Remarquez que dans la configuration d'exemple, cela est absent.

    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

Vous avez également un / final égaré dans la directive root.

    root /var/www/backend/web/;

Je m'attendais à voir :

    root /var/www/backend/web;

Avec votre configuration existante, SCRIPT_FILENAME est défini comme, par exemple, /var/www/backend/web///api/config.php. Cela ne devrait pas vraiment poser problème, mais il est possible que vous ayez rencontré un scénario où cela pose problème.


Si cela ne résout pas le problème, commencez à examiner le code de votre application.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X