2013-09-23 45 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。 –

相关问题