1

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

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

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

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

任何帮助是极大的赞赏!

4

3 回答 3

2

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

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

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

对于您最初的问题:也许使用外部 ip 或主机名作为“主机名”可能会有所帮助?

于 2011-07-09T02:28:42.467 回答
2

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

(run-jetty (var app) {:join? false :port 8080})
于 2011-07-09T06:04:33.687 回答
0

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

于 2011-07-10T02:52:38.040 回答