将 Go 网络服务器部署到 Google 计算引擎

Deploy Go webserver to Google compute engine

我刚开始测试 Google 计算引擎。现在我正在尝试在其上部署我的 Go (golang) 应用程序,以便可以从外部访问它。我使用计算引擎而不是应用引擎,因为我的应用程序需要一个 MongoDB 数据库。

我做了以下事情:

  1. 创建计算引擎实例
  2. 设置防火墙,打开 1234 端口并且 IP 是静态的
  3. 安装MongoDB
  4. 上传我的申请
  5. 开始

应用程序启动正常。但是如果我在浏览器中用 ip:1234 打开它,我就无法从外部访问它。我还尝试以 root 用户身份在端口 80 上启动它,但这也不起作用。

服务器配置如下:

{
    "host": "localhost:1234",
    "dbhost": "localhost",
    "db": "dbname",
    "logfile": "log"
}

当我使用 apache 服务器时,它使用端口 80 并显示页面...OS 是 ubuntu 14.04.

main 只是将一些处理程序添加到 mux 并将文件服务器添加到 public 目录:

mux.Handle("/", http.FileServer(http.Dir(public_dir)))
// [...]
if err := http.ListenAndServe(cfg.Host, mux); err != nil {
    panic(err)
}

那么这里的问题是什么?

尝试将 hostlocalhost 更改为 0.0.0.0,因为现在它只监听 "inside" 个请求。