我有一个小的Go网络服务器,我已部署在亚马逊网络服务上,但我无法上班。
我的EC2实例同时包含公共和实时已分配私有IP地址,但我无法启动Go服务器。
如果我在localhost上提供它,它可以工作,但显然我无法连接到它,所以我试图将它分配给公共IP,但它崩溃而不会丢失任何错误。
http.ListenAndServe("public_ip", nil)
任何想法如何从这里开始?
答案 0 :(得分:5)
我不确定您的服务器在没有丢失任何错误的情况下崩溃是什么意思。确保您记录错误:
log.Println(http.ListenAndServe(addr, nil))
这应该会让你知道为什么它不起作用。还有什么吗?
例如,在端口<上运行时没有root权限的1024,我可以看到:
2014/11/25 19:14:51 listen tcp :80: bind: permission denied
现在,如果您在地址:8080
上运行服务器,您应该监听所有接口。您可以从本地主机测试服务器。如果可行,请通过为您的实例修改security group,确保可以通过此端口上的Internet访问您的计算机。
如果它仍然无效,请告诉我们崩溃的内容和更多内容。
答案 1 :(得分:3)
要检查几件事:
如果是从localhost连接但不是远程连接,请确保: