vendredi 26 février 2016

Getting 499 status code on PHP Nginx server using flash(AS3) client app with no reason

I have experienced some strange behaviour on our PHP Nginx server and couldn’t find explanation to that behaviour so I would like to ask for some help from community.

We have a PHP back-end application with something about 500 req. per sec. coming from flash front-end app.

We noticed that we get same error continually from flash requests named “I/O error (code: #2032)”. Frequency is 0.3 to 1 req. per sec continually with visits (approximately 1000-3000 errors per hour) out of those 500 requests per second. There is no possibility to track this status code or any response in flash(AS3) when you get this error.

Sometimes there is peak for few minutes where almost every person in game can get this error.

I created solution to track and analyse those errors. After some time I can confirm that this strange behaviour is based on two status codes that are fired from Nginx no matter if request hits our back-end application behind Nginx server or not. Status codes are 499 and 408.

I found that cause of this error can be “client_body_timeout” setup in Nginx or anything connected to huge request size but some of those requests are almost empty or there is no difference from other that have successfull story.

Another strange thing is that I have a proof that some of error requests has been evaluated as I/O error on client(499 or 408 status code from Nginx) but on back-end application was task coming from request executed successfully and all data are stored in DB for example.

There is no pattern in Internet browser usage, OS, device, client IP, back-end IP behind load balancer or specific country visit.

Any suggestions?

Aucun commentaire:

Enregistrer un commentaire