504 Gateway Timeout - Deux instances EC2 avec équilibreur de charge

Ce pourrait être l'impossible question. J'ai tout essayé. Je me sens comme il ya un gars à un tableau quelque part, en faisant tournoyer sa moustache.

Le problème:

J'ai Amazon EC2 exécutant une application. Il fonctionne sans problème quand il y a une seule instance et sans équilibrage de charge.

Mais dans mon environnement de production, j'ai deux identiques instances en cours d'exécution derrière un répartiteur de charge et lors de l'exécution de certaines tâches, comme une fonction qui génère un fichier PDF et le joint à un courriel, il ne se passe rien du tout, et lors de l'utilisation de Google outils pour les Développeurs avec l'onglet Réseau, j'obtiens l'erreur "504 Gateway Timeout" une fois le délai d'attente de hits (je l'ai fixé à 30 secondes).

Ma Base de données externe, sur Amazon RDS.

Je pense.... Si je pouvais forcer un client à rester connectés à leurs initiale de serveur connecté à, ce problème pourrait être résolu, parce que c'est ma compréhension que les 504 Gateway Timeout qui se passe lors de l'instance-1 tente d'atteindre instance-2 pour effectuer la tâche.

Cela se produit UNIQUEMENT LORS de l'utilisation de l'Équilibrage de la Charge, mais jamais lors de la connexion directement dans l'un de mes deux serveurs.

Équilibrage De La Charge De Paramètres:

  • L'équilibreur de charge a une CRECORD sur mon Greffier, de sorte que app.myapplication.com points à myloadbalancerDNSname.elb.amazonaws.com
  • L'équilibreur de charge a 2 sain, chacune dans la même région, mais ils sont dans différentes zones de disponibilité.
  • Le programme d'équilibrage de charge en utilisant les mêmes Groupes de Sécurité comme les Instances (permettre à TOUTES les adresses ip sur les ports 22, 80 et 443)
  • L'équilibreur de charge a la croix de la zone d'équilibrage de charge allumé.
  • De la SCRO (Amazon S3) est activé pour GET, POST, PUT, DELETE de * à * (je n'ai aucune idée de comment cela est associé à mon cas, mais de toute façon, je n'ai que les instructions dit)
  • L'équilibreur de charge a des auditeurs configuré en tant que tel:
    • Équilibrage de la charge de Protocole:HTTP Équilibreur de Charge Port:80 Exemple de Protocole:HTTP Instance de Port:80
    • Équilibrage de la charge de Protocole:HTTPS Équilibrage de la Charge de Port:443 Exemple de Protocole:HTTP Instance de Port:80 (cipher correctement choisi par mon Cert fournisseur, et les champs SSL 100% sûrement correct)

Quelques autres idées:

Cela étant dit, je ne suis pas en essais avec HTTPS, mais c'est normal l'adresse HTTP à la place. Je ne suis pas convaincu SSL est installé correctement, même si mon fournisseur de certificats a dit qu'il est. La raison pour laquelle je me méfie, c'est que lorsque j'essaie de clé dans https://app.myapplication.com j'obtiens l'erreur "(échec) net::ERR_CONNECTION_CLOSED" dans Google Outils pour les Développeurs, dans l'onglet Réseau. Mais cela doit être non applicable parce que je vais avoir le même problème, même en utilisant HTTP. Je peux dépanner SSL plus tard.

Donc pour résumer, mon problème est d'avoir la "504 Gateway Timeout" problème lors de l'utilisation de certaines fonctions, mais aussi, parfois, au hasard, au lieu de chargement de la page (mais rarement). Cette 504 problème se produit UNIQUEMENT LORS de l'utilisation de l'Équilibrage de la Charge, mais jamais lors de la connexion directement dans l'un de mes deux instances.

Je ne sais pas qui de se poser la question, parce que j'ai Suivi tous les documents pour le T, double et triple vérifié toutes les suggestions sur le web et de RIEN.

source d'informationauteur user3035649 | 2014-10-24