如何使外部主机可以访问jetty服务器(ring.adapter.jetty)

时间:2011-07-09 00:25:05

标签: clojure jetty embedded-jetty compojure ring

我正在尝试使用以下调用运行Web服务器

(run-jetty#'handler {:host“hostname”:port 8080})

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

我正在使用稍微过时的ring-jetty-adapter版本(0.2.5),但我无法改变它。

非常感谢任何帮助!

3 个答案:

答案 0 :(得分:2)

获取访问权限并将其保密,您可以运行

ssh -L 8080:localhost:8080 your.ec2.instance

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

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

答案 1 :(得分:2)

根本不要指定:host选项;在这种情况下,Jetty似乎在所有接口上侦听。例如,我帮助4clojure。那里的网络服务器确实在服务器raynes.me的端口8080上运行,如果主机HTTP请求是4clojure.com,则有一些nginx魔法转发端口80。如果您愿意,可以直接访问它:http://raynes.me:8080工作正常,这是我们的码头电话:

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

答案 2 :(得分:0)

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