2012-10-06 4 views
-1

J'ai essayé d'exécuter emit (une implémentation gwt de client xmpp) avec ejabberd, et cela fonctionne très bien. je remarquai que les développeurs de Emit utilisent un servlet java pour demander proxy à ejabberd:5920 # 0: * 52 délai dépassé (110: délai de connexion expiré) lors de la connexion à l'amont,

https://github.com/EmiteGWT/hablar/blob/master/src/main/java/de/spieleck/servlets/ProxyServlet.java), 

Et je veux contourner ce proxy, donc je suivre ce post:

http://anders.conbere.org/blog/2011/05/03/get_xmpp_-_bosh_working_with_ejabberd_firefox_and_strophe/ 

Mais javascript client (conformé de Emit) prend beaucoup de temps pour se connecter à ejabbered, puis déconnecter rapidement, et l'erreur nginx journal comme ceci:

2012/10/06 17:04:33 [error] 5920#0: *52 upstream timed out (110: Connection timed out) while connecting to upstream, client: 127.0.0.1, server: localhost, request: "POST /http-bind HTTP/1.1", 
upstream: "http://111.186.4.11:5280/http-bind", host: "127.0.0.1", referrer: "http://127.0.0.1/hablartest/HablarTest1.html" 

Quelqu'un peut-il me dire ce que je d je me trompe?

Ma configuration: firefox-13 ejabberd-2.1.11 nginx-1.0.5 ubuntu-11.10

(depuis même code client (code js satisfait de GWT) avec proxy servlent fonctionne très bien, donc je pense qu'il peut-être un problème de configuration nginx)

Répondre

0

Enfin, je trouve le problème: ma configuration proxy comme ceci:

location ~ ^/http-bind {  
     proxy_pass http://localhost:5280; 
} 

donc nginx redirigera toutes les demandes de 127.0.0.1:80 localhost: 5280

Cela fonctionne bien si je suis déconnecté de l'Internet, mais si je me connecte à Internet, mon fichier hosts devient:

127.0.0.1  luya localhost.localdomain localhost 
111.186.4.11 luya localhost.localdomain localhost 

De ma compréhension, localhost sera « pris » soit comme 127.0.0.1 ou 111,186. 4,11 au hasard, il est donc cette confusion causé problem.Solution est simple, en changeant la configuration du proxy

de

proxy_pass http://localhost:5280; 

à

proxy_pass http://127.0.0.1:5280; 
Questions connexes