2011-10-19 2 views
0

Ma configuration de serveur actuelle est composée d'Apache et d'Ejabberd. Apache agit comme un proxy pour les requêtes ejabberd.Apache + Nginx proxy + ejabberd

Maintenant, j'ai inclus un autre niveau où Nginx agit comme un serveur d'image proxy en face d'Apache. Donc Nginx traite toutes les demandes par défaut et transmet toutes les requêtes PHP à Apache.

Maintenant, je suis bloqué avec l'interrogation ejabberd car il communique maintenant avec nginx en premier au lieu d'apache, donc je reçois toujours une requête 502 Bad.

Ho je vais à propos de cette situation.

Je fatigué cela dans nginx, mais il ne fonctionne pas

proxy_set_header Host $http_host; 
      proxy_set_header X-Real-IP $remote_addr; 
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
      proxy_pass http://localhost:5280; 

Répondre

1

je n'étais pas celui qui a mis en place, mais j'ai le même genre de configuration en cours d'exécution dans un environnement de production. Nous utilisons les mêmes paramètres que vous avez affichés ci-dessus, avec l'ajout de ces trois.

proxy_buffering off; 
tcp_nodelay on; 
keepalive_timeout 55; 

Je pense que le tcp_nodelay est vital que les connexions sont censées être keep-alive.

Si cela ne le résout pas, veuillez fournir les journaux d'erreurs de nginx.

+0

Je continue à obtenir des charges de ces erreurs dans mes journaux "en amont envoyé trop grand en-tête en lisant l'en-tête de réponse de l'amont" – user160108

+0

[Cette question] (http://stackoverflow.com/questions/2307231/how-to-avoid- nginx-upstream-envoyé-too-big-header-errors) suggère trois solutions différentes au problème. Ils concernent tous la définition de tailles de mémoire tampon plus élevées. –