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

  • Ho eseguito accidentalmente chmod -R 600 / su Ubuntu AWS Server
  • Come utilizzare cygwin per accedere a un'istanza del server linux di AWS
  • Come posso raggiungere il mio server web tramite IPv6 sulla piattaforma AWS?
  • AWS Elastic Beanstalk - Apache sta riavviando costantemente
  • Un magazzino SSD esegue come un magnete per i piccoli volumi radici in AWS EC2?
  • Tabella di routing AWS VPC con Gateway Internet e Gateway NAT
  • 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.

  • Installare SSL su Amazon Elastic Balancer Load con il certificato GoDaddy Wildcard
  • Come get HTTP / 2 che funziona con un AWS ALB e Tomcat 9
  • AWS - Imansible connettere l'istanza NFS
  • Come redirect temporaneamente il traffico da un bilanciatore di carico elastico?
  • AWS ELB come backend per Varnish Accelerator
  • Pass IP Client da AWS ELB a Proxy HA
  • Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.