在 Ubuntu/Centos 上部署并 运行 Go API 服务器
Deploy and run a Go API server on Ubuntu/Centos
我刚刚使用 Iris 框架完成了我的第一个 Go 后端,但现在我需要将它投入生产,以便我可以在我构建的 Slack 应用程序中使用它。
为了在本地测试代码,我只 运行 我的文件 go run main.go
和 ngrok
用 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 配置 API 的常用方法吗?
- 除了 DigitalOcean,您是否建议使用与 运行 我的 API 不同的服务?
这真的是我第一次使用 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
我刚刚使用 Iris 框架完成了我的第一个 Go 后端,但现在我需要将它投入生产,以便我可以在我构建的 Slack 应用程序中使用它。
为了在本地测试代码,我只 运行 我的文件 go run main.go
和 ngrok
用 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 配置 API 的常用方法吗?
- 除了 DigitalOcean,您是否建议使用与 运行 我的 API 不同的服务?
这真的是我第一次使用 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