Comment éviter de nginx “en amont envoyé trop grosse-tête” erreurs?
Je suis en cours d'exécution nginx, Phusion Passenger et de Rails.
Je suis en cours d'exécution contre le message d'erreur suivant:
upstream sent too big header while reading response header from upstream, client: 87.194.2.18, server: xyz.com, request: "POST /user_session HTTP/1.1", upstream: "passenger://unix:/tmp/passenger.3322/master/helper_server.sock
Il se produit sur la fonction de rappel à partir d'un appel de l'authentification de Facebook Connect.
Après googler, et d'essayer de changer de nginx les réglages, y compris proxy_buffer_size et large_client_header_buffers est ne pas avoir d'effet.
Comment puis-je corriger de cette?
Vous devez vous connecter pour publier un commentaire.
Suis tombé sur cette erreur récemment.
Depuis Passager 3.0.8 il y a maintenant un paramètre qui permet de définir les tampons et la taille de la mémoire tampon. Alors maintenant, vous pouvez faire
Qui a résolu le problème pour moi.
Essayez d'ajouter cette config:
Maybee l'ajout de cette volonté de le faire fonctionner, comment êtes-vous de la connexion à l'amont? http, fastcgi ou autre chose?
C'est tout ce que je viens de comprendre à propos de cette erreur dans les 2 dernières années:
upstream sent too big header while reading response header from upstream
est nginx génériques façon de dire "je n'aime pas ce que je vois"3: Regardez les journaux d'erreur ci-dessus le message, est-il de la diffusion connecté lignes précédant le message?
PHP message: PHP Notice: Undefined index:
Exemple extrait à partir d'une boucle mon fichier journal:
vous pouvez le voir dans la 3ème ligne (à partir du 20 erreurs précédentes) la limite de tampon a été frappé, le rompit, et le prochain thread a écrit au-dessus d'elle. Nginx puis a fermé la connexion et retourné 502 pour le client.
2: se connecter à tous les en-têtes envoyés par demande, d'examen et de s'assurer qu'ils sont conformes aux normes (nginx n'est pas permis de rien de plus que 24 heures pour supprimer/expiration d'un cookie, l'envoi d'un contenu non valide longueur parce que les messages d'erreur ont été tamponnés avant que le contenu compté...)
exemples:
et ce:
1: vérifier, ou de faire un script de log, pour assurer votre fil est de parvenir à la bonne fin et de ne pas quitter avant la fin.
Je pensais carillon avec ma solution, car je ne vois pas actuellement répertoriés. En fait, j'ai involontairement faire un objet de grande taille dans la session, comme indiqué ci-dessous.
Cela s'est produit seulement quand quelqu'un premier authentifié avec GitHub OAuth et par la suite essayé de s'authentifier avec un autre profil social qui utilise le même e-mail (pourquoi je n'arrivais pas à l'origine figure sur la question).
Voici la pleine
OmniauthCallbacksController
de référence contextuelle:Tout était bien, une fois que j'ai enlevé la ligne fautive. Je suppose que j'ai eu il y à des fins de débogage.