2016-04-21 4 views
0

Nginx détecter avec succès lorsqu'un client se déconnecte avant l'envoi de la réponse, et qu'il est enregistré dans les journaux d'accès sous le code 499 Mais mon FastCGI (en C) app ne donne aucune erreur lors de la réponse.Comment détecter la déconnexion du client (HTTP 499) dans nginx avec une application FastCGI

Existe-t-il un moyen de détecter le délai d'attente du client dans FastCGI (en C) derrière nginx?

+0

Pouvez-vous poster votre code C, vous devez gérer c'est votre code. – Kev

+0

Résolu le problème. Dis moi ce que tu penses. –

Répondre

0

Ok. J'ai trouvé la réponse.

Il y avait un link qui a demandé d'utiliser FCGX_GetError() pour détecter l'erreur, après avoir écrit dans le flux.

Le problème est que l'E/S est mise en mémoire tampon, donc aucune erreur n'est signalée. J'ai donc utilisé FCGX_FFlush (request.out) Cela a fonctionné comme un charme, donnant -1 lorsque le client arrive à expiration.

Remarque: nginx détecte cette déconnexion client et saisit un code 499 dans le journal d'accès.