504s sur Elastic Beanstalk app déploient (user -> ELB -> Elastic Beanstalk mod_wsgi)

J'ai une application équilibrée en bloc Python Elastic Beanstalk. Voici le path parcouru par une request d'user dans l'application Elastic Beanstalk:

user -> Elastic Beanstalk ELB -> Elastic Beanstalk mod_wsgi

Le problème:

Les premières ~ 2-4 requests de l' user après eb deploy d'une nouvelle version de l'application génèrent 504 erreurs du ELB.

Après ces ~ 2-4 requests qui génèrent 504, tout va bien! 200s tout autour.

Lorsque les 504 se produisent, les requêtes zéro entrent dans l'application Elastic Beanstalk mod_wsgi fonction de /var/httpd/access_log . Je ne vois que les 200s après que le ELB a décidé de recommencer à fonctionner.

Les choses que j'ai essayé ne fonctionnent pas:

  1. J'ai augmenté le timeout d' Elastic Beanstalk ELB inactif Elastic Beanstalk ELB à 300 secondes
  2. J'ai augmenté le Elastic Beanstalk mod_wsgi apache KeepAliveTimeout à 300 secondes comme suggéré ici: http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/ts-elb-error-message.html

On pourrait dire, "vivez avec les années 50!"

Cependant, le problème réel est que dans mon installation de production, j'ai CloudFlare entre l' user et Elastic Beanstalk ELB . CloudFlare est configuré pour mettre en cache .css files .css et .js de façon agressive, car j'ajoute les majuscules md5 aux URL de files statiques. Lorsque les requests pour ces files importants échouent avec 504, CloudFlare semble mettre en cache ces échecs en 404s. Demandes supplémentaires pour ces files 404, rompant ainsi le style visuel du site sur chaque deployment.

Le deployment de l'application Elastic Beanstalk à nouveau avec la même version d'application réparera le problème CloudFlare 404. Ce n'est pas une excellente solution. Je veux continuer à utiliser CloudFlare car il en résulte un excellent CDN transparent, afin de s'en débarrasser n'est pas non plus une solution.

Il est difficile de croire que je suis seul avec ce problème, mais Google, stackoverflow / serverfault et les forums AWS n'ont pas apporté de solutions, voire des rapports de problèmes similaires. J'espère que ma description de ce comportement sonne avec quelqu'un ici. Merci d'avance.