2012-10-06 140 views
-1

我試圖用ejabberd運行emit(一個gwt實現的xmpp客戶端),它工作正常。 我注意到發射的開發人員使用Java servlet來代理請求ejabberd:5920#0:* 52上游超時(110:連接超時),當連接到上游時,

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

而且我想繞過這個代理,所以我遵循這個帖子:

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

但JavaScript客戶端(從EMIT遵守)花費很長時間才能連接到ejabbered,然後迅速斷開,而Nginx的錯誤日誌是這樣的:

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" 

誰能告訴我是什麼I D編號錯誤?

我的配置: 中的firefox-13 ejabberd-2.1.11的nginx-1.0.5 Ubuntu的11.10

(因爲來自GWT遵守同樣的客戶端代碼(js代碼)與servlent代理工作正常,所以我認爲它可能是一個nginx的配置問題)

回答

0

最後,我發現了問題:我的代理配置是這樣的:

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

所以nginx的都將請求重定向從127.0.0.1:80爲localhost:5280

這將正常工作,如果我從互聯網斷開,但如果我連接到互聯網,我的hosts文件就變成了:

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

從我的理解,本地主機將「採取」可能爲127.0.0.1或111.186。 4.11隨機,因此它是本混亂引起problem.Solution簡單,改變代理配置

proxy_pass http://localhost:5280; 

proxy_pass http://127.0.0.1:5280; 
相關問題