Dans mon cas, j'étais impatient et j'ai fini par mal interpréter le journal.
En fait, le vrai problème était la communication entre nginx et uwsgi, et non entre le navigateur et nginx. Si j'avais chargé le site dans mon navigateur et que j'avais attendu assez longtemps, j'aurais obtenu un "504 - Bad Gateway". Mais cela a pris tellement de temps que j'ai continué à essayer des trucs, puis à actualiser le navigateur. Je n'ai donc jamais attendu assez longtemps pour voir l'erreur 504. Lors de l'actualisation dans le navigateur, c'est lorsque la demande précédente est fermée et Nginx écrit cela dans le journal comme 499.
Élaboration
Ici, je suppose que le lecteur en sait aussi peu que moi lorsque j'ai commencé à jouer.
Ma configuration était un proxy inverse, le serveur nginx et un serveur d'applications, le serveur uWSGI derrière. Toutes les demandes du client iraient au serveur nginx, puis transférées au serveur uWSGI, puis la réponse était renvoyée de la même manière. Je pense que c'est ainsi que tout le monde utilise nginx / uwsgi et est censé l'utiliser.
Mon nginx a fonctionné comme il se doit, mais quelque chose n'allait pas avec le serveur uwsgi. Il y a deux façons (peut-être plus) dans lesquelles le serveur uwsgi peut ne pas répondre au serveur nginx.
1) uWSGI dit: "Je suis en train de traiter, attendez et vous obtiendrez bientôt une réponse". nginx a une certaine période de temps, qu'il est prêt à attendre, fx 20 secondes. Après cela, il répondra au client, avec une erreur 504.
2) uWSGI est mort, ou uWSGi meurt pendant que nginx l'attend. nginx voit cela tout de suite et dans ce cas, il renvoie une erreur 499.
Je testais ma configuration en effectuant des requêtes dans le client (navigateur). Dans le navigateur, rien ne s'est passé, il s'est arrêté. Après peut-être 10 secondes (moins que le délai), j'ai conclu que quelque chose n'allait pas (ce qui était vrai) et j'ai fermé le serveur uWSGI à partir de la ligne de commande. Ensuite, j'irais dans les paramètres uWSGI, essayerais quelque chose de nouveau, puis redémarrerais le serveur uWSGI. Au moment où j'ai fermé le serveur uWSGI, le serveur nginx renverrait une erreur 499.
J'ai donc continué à déboguer avec l'erroe 499, ce qui signifie rechercher l'erreur 499 sur Google. Mais si j'avais attendu assez longtemps, j'aurais eu l'erreur 504. Si j'avais eu l'erreur 504, j'aurais pu mieux comprendre le problème et ensuite être en mesure de déboguer.
Donc, la conclusion est que le problème était avec uWGSI, qui n'arrêtait pas de s'accrocher ("Attendez encore un peu, juste un peu plus longtemps, alors j'aurai une réponse pour vous ...").
Comment j'ai résolu ce problème, je ne me souviens pas. Je suppose que cela pourrait être causé par beaucoup de choses.