On Thu, 2018-12-06 at 19:51 +0100, Patrice Karatchentzeff wrote:
> Salut
>
> Sur un serveur nginx avec PHP, j'ai l'erreur suivante dans les logs :
>
> 784 upstream prematurely closed connection while reading response
> header from upstream,
> Le serveur est réglé en fastcgi.
>
> J'ai essayé différents réglages, mais je continue d'avoir cette
> erreur
> pour plein de fichiers, pas forcément des gros (parfois 5 Mo, parfois
> plus).
>
> L'upload est assez lente à cause de la ligne, mais excède rarement
> quelques minutes. Même avec des durées de process de 3600, j'ai ce
> type d'erreur. J'ai augmenté la taille des paquets de buffer aussi.
>
> Beaucoup de gens ont ce genre de soucis, mais chacun avec une config
> spécifique et des réponses ad hoc.
>
> Ici, c'est un serveur nextcloud.
>
> Avez-vous une piste ?
> Merci
> PK
Effectivement c'est l'erreur passe-partout. Dans mon cas, une exception
Python masquée par Flask... jusqu'à ce que j'en découvre la trace avec
"strace" ("write" sur fd 2) et donc que j'active la verbosité du log -
bien sûr après avoir essayé quantités de réglages de timeout et buffers
dans uwsgi et nginx, dans le genre:
client_max_body_size 128M;
keepalive_timeout 240;
large_client_header_buffers 8 32k;
uwsgi_buffer_size 256k;
uwsgi_buffers 8 64k;
uwsgi_busy_buffers_size 256k;
uwsgi_read_timeout 240;
uwsgi_send_timeout 240;
Pour ton problème de PHP, en augmentant la verbosité, il faudrait
vérifier si l'exécution pourrait être interrompue après avoir atteint
la limite d'allocation mémoire - c'est le plus fréquent il me semble.
Et sinon je t'invite donc à attacher un strace à ton process PHP, c'est
hardcore mais ça peut donner des pistes.
--
Yves Martin