2013-09-23 41 views
1

我目前正試圖用Compojure開始一個項目。如何讓lein ring/jetty服務器可以外部訪問?

在這一點上,我只是試圖運行你好世界的應用程序,並通過瀏覽器看到它。

我在安裝了Ubuntu 13.04的數字海洋上有一滴水,我似乎無法在服務器啓動後訪問網頁。

lein ring server-headless 3000 

eg: http://hostname:3000 

我剛剛找不到頁面。我檢查確保碼頭正在使用端口3000,它是。

我是否缺少依賴關係?

我想不出任何會阻止我查看頁面的東西。

* 更新:* 如果我在端口80上運行服務器,我可以看到它。我沒有添加或配置任何防火牆,除非Digital Ocean圖像默認帶有一個防火牆。在實例

+1

你能擴展一下錯誤信息嗎?它是「連接拒絕」,「連接超時」還是404「頁面未找到」錯誤? –

+0

你有沒有在液滴上打開的端口3000?你可以讓實例在80端口上運行嗎?考慮製作一個uberwar(使用lein ring uberwar任務)並讓tomcat作爲一個servlet來服務(這是我通常部署webapps的方式,並且它可以工作)。 – noisesmith

+0

@ArthurUlfeldt連接超時。 –

回答

0

運行

sudo netstat -np | grep 3000 

,看看有什麼解決您的服務器監聽,如果是0.0.0.0那麼你的服務器監聽來自任何來源的連接,這個問題是與上游防火牆(最有可能)或本地防火牆(不太可能)。如果它是'127.0.0.1 or :: 1/128`,那麼你的服務器只監聽本地連接,你需要改變project.clj文件中的綁定地址,儘管默認情況下這不太可能綁定到任何接口

+0

它不綁定到IP地址。當我將服務器的端口更改爲80時,我能夠看到它。 –

+0

任何基於Unix系統的每個偵聽套接字都有一個「綁定地址」,它是localhost(127.0.0.1),這意味着它只接受到達綁定到地址127.0.0.1的連接,或者它是某個特定地址網絡接口,在這種情況下,它將監聽到達該接口的連接,或者它是0.0.0.0,這是任何接口的別名。 –

+0

如果您可以在端口80上監聽指示綁定地址爲0.0.0.0的端口,並且您需要允許訪問提供商防火牆配置中該端口的端口3000。 –

相關問題