在 Ubuntu/Centos 上部署并 运行 Go API 服务器

Deploy and run a Go API server on Ubuntu/Centos

我刚刚使用 Iris 框架完成了我的第一个 Go 后端,但现在我需要将它投入生产,以便我可以在我构建的 Slack 应用程序中使用它。

为了在本地测试代码,我只 运行 我的文件 go run main.gongrok 用 Slack API 测试,它正在工作并且已经完成。

我有一个使用 Ubuntu 16.04.3 的 droplet,另一个使用 Centos 7...使用 nginx 指向那个端口,但我用 Go 读到它是不同的,我必须使用这样的东西 https://fabianlee.org/2017/05/21/golang-running-a-go-binary-as-a-systemd-service-on-ubuntu-16-04/

但是对于一个简单的服务器来说这是一个非常长的配置,我的问题是:

这真的是我第一次使用 Go,我只是想了解更多,我是 Laravel 和 NodeJS 的后端开发人员。

我想大多数人都使用 Supervisor 来达到这个目的,包括我。

为了方便您,请看一下 my Golang project, isaac-racing-server and use it as a template for yours by replacing isaac-racing-server with the name of your app. (The Supervisor files are in a subdirectory。)

如果需要,您可以使用 pm2。当你构建一个 go 项目时,它会创建一个二进制可执行文件,假设 backend-server,你可以从终端 运行 并将像这样启动应用程序:

$ ./backend-server

如果它不是可执行的或权限被拒绝的问题,请为其添加可执行权限。

$ chmod +x backend-server

您的二进制文件应该准备好 运行。我喜欢用 json 配置文件 (process.json) 来完成它,这样我也可以传递额外的环境变量,而不必在终端中输入很多内容。 我的 process.json 看起来像这样:

{
  "apps" : [{
    "name"        : "backend-app",
    "script"      : "./backend-server",
    "env": {
      "DB_USER": "db_user",
      "PORT": 8080
    }
  }]
}

最后,您可以像这样使用 pm2 启动应用程序:

$ pm2 start process.json

有关 json 配置的更多详细信息,请参阅 official doc