2011-07-09 50 views
1

我尝试使用下面的调用运行一个Web服务器如何使码头服务器(ring.adapter.jetty)从外部主机访问

(运行码头#'处理{:主机‘主机名’:端口8080})

这启动一个服务器,我可以从同一个主机访问,但不能从外部访问。我正在EC2实例上执行此操作,并使用该计算机的内部IP作为“主机名”,为外部访问打开端口8080。我也尝试使用“0.0.0.0”作为主机名,但导致了相同的行为。

我使用的是稍微过时的环形码头适配器(0.2.5),但我无法改变它。

任何帮助,非常感谢!

回答

0

感谢您的答复球员,事实证明,这是不是与码头的一个问题,我在EC2上运行此,并且已经将端口访问权限应用于不同于此特定实例所属的安全组的:)

2

获得接入和保持私有,你可以运行

的ssh -L 8080:本地主机:8080 your.ec2.instance

然后打开浏览器http://localhost:8080/myapp/

你原来的问题: 也许使用外部IP或主机名作为“主机名”可能有帮助?

+0

谢谢,使用ssh隧道是一个好主意,但在这种情况下,它不适用于我,因为我不能指望每个想使用这个Web服务器的人都先创建一个隧道。 – fsm

+1

是的,它只是一个黑客的访问代码,而你正在开发它,但尚未公布。希望有一个有用的提示,如果不是真的回答你的问题:) –

2

只要不指定:host选项;在这种情况下,Jetty似乎在监听所有接口。例如,我帮助4clojure。那里的web服务器真的在服务器raynes.me的端口8080上运行,如果主机HTTP请求是4clojure.com,那么有一些nginx魔术可以转发端口80。您可以直接访问它,如果你喜欢:http://raynes.me:8080正常工作,这里是我们的码头电话:

(run-jetty (var app) {:join? false :port 8080}) 
+0

感谢,出于好奇,有多少用户现在使用4clojure? – fsm

+0

@fsm http://4clojure.com/users“显示796项中的1到25”。 – amalloy

相关问题