将 Go 网络服务器部署到 Google 计算引擎
Deploy Go webserver to Google compute engine
我刚开始测试 Google 计算引擎。现在我正在尝试在其上部署我的 Go (golang) 应用程序,以便可以从外部访问它。我使用计算引擎而不是应用引擎,因为我的应用程序需要一个 MongoDB 数据库。
我做了以下事情:
- 创建计算引擎实例
- 设置防火墙,打开 1234 端口并且 IP 是静态的
- 安装MongoDB
- 上传我的申请
- 开始
应用程序启动正常。但是如果我在浏览器中用 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)
}
那么这里的问题是什么?
尝试将 host
从 localhost
更改为 0.0.0.0
,因为现在它只监听 "inside" 个请求。
我刚开始测试 Google 计算引擎。现在我正在尝试在其上部署我的 Go (golang) 应用程序,以便可以从外部访问它。我使用计算引擎而不是应用引擎,因为我的应用程序需要一个 MongoDB 数据库。
我做了以下事情:
- 创建计算引擎实例
- 设置防火墙,打开 1234 端口并且 IP 是静态的
- 安装MongoDB
- 上传我的申请
- 开始
应用程序启动正常。但是如果我在浏览器中用 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)
}
那么这里的问题是什么?
尝试将 host
从 localhost
更改为 0.0.0.0
,因为现在它只监听 "inside" 个请求。