2016-04-21 14 views
0

Nginx erkennt erfolgreich, wenn ein Client die Verbindung trennt, bevor die Antwort gesendet wird, und wird in den Zugriffsprotokollen als Code 499 aber mein FastCGI (in C) protokolliert App gibt während der Antwort keinen Fehler aus.Erkennung von Client-Disconnect (HTTP 499) in nginx mit einer FastCGI-App

Gibt es eine Möglichkeit, Client Timeout in FastCGI (in C) hinter Nginx zu erkennen?

+0

Können Sie Ihren C-Code posten, müssen Sie damit umgehen ist Ihr Code. – Kev

+0

Das Problem wurde gelöst. Lass mich wissen was du denkst. –

Antwort

0

Ok. Ich habe die Antwort gefunden.

Es gab eine link, die gebeten wurde, FCGX_GetError() zu verwenden, um den Fehler nach dem Schreiben in den Stream zu erkennen.

Das Problem ist, dass die IO gepuffert ist, daher wird kein Fehler gemeldet.

Also habe ich FCGX_FFlush (request.out) Es funktionierte wie ein Charme, geben -1, wenn der Client abläuft.

Hinweis: nginx erkennt diese Client-Trennung und gibt einen Code 499 in das Zugriffsprotokoll ein.