504 sull'applicazione Elastic Beanstalk app (user -> ELB -> Elastic Beanstalk mod_wsgi)

Ho un'applicazione bilanciata di Python Elastic Beanstalk. Ecco il path in cui una richiesta utente entra nell'applicazione Elastic Beanstalk:

user -> Elastic Beanstalk ELB -> Elastic Beanstalk mod_wsgi

Il problema:

Le prime richieste di 2-4 richieste da parte user dopo la eb deploy di eb deploy di una nuova versione di app genereranno 504 errori dall'ELB.

Dopo queste 2-4 richieste che generano 504s, tutto va bene! 200s tutto intorno.

Quando i 504 si verificano, le richieste zero lo fanno passare all'applicazione Elastic Beanstalk mod_wsgi secondo /var/httpd/access_log . Vedo solo i 200 anni dopo che l'ELB ha deciso di ripartire.

Le cose che ho provato che non hanno funzionato:

  1. Ho aumentato l' Elastic Beanstalk ELB Idle Timeout di Elastic Beanstalk ELB a 300 secondi
  2. Ho aumentato l' Elastic Beanstalk mod_wsgi apache KeepAliveTimeout a 300 secondi come suggerito qui: http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/ts-elb-error-message.html

Si potrebbe dire, "vivi con i 504!"

Tuttavia, il problema reale è che, nella mia configuration di produzione, ho CloudFlare tra l' user e Elastic Beanstalk ELB . CloudFlare è impostato su cache aggressivamente di file .css e .js , poiché appendono gli hash md5 agli URL dei file statici. Quando le richieste per questi file importnti non vengono eseguite con 504, CloudFlare sembra cache questi errori come 404s. Ulteriori richieste per questi file 404, in tal modo rompono lo stile visivo del sito su each distribuzione.

Distribuire nuovamente l' applicazione Elastic Beanstalk con la stessa versione di app risolve il problema CloudFlare 404. Questa non è una grande soluzione. Voglio continuare ad utilizzare CloudFlare perché fa un eccellente CDN trasparente, per cui liberarsi di esso non è una soluzione.

È difficile credere di essere sola con questo problema, ma Google, lo stackoverflow / serverfault e i forum AWS non hanno fornito alcuna soluzione – o addirittura rapporti problematici simili. Spero che la mia descrizione di questo comportmento squilla una campana con qualcuno qui. Grazie in anticipo.

Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.