3 回答
TA贡献1853条经验 获得超18个赞
nginx 用于:
将 HTTP 代理反向到我的 Go 应用程序
静态文件处理
SSL 终止
HTTP 标头(Cache-Control 等)
访问日志(因此利用系统日志轮换)
重写(裸到 www、http:// 到 https:// 等)
nginx 使这变得非常容易,尽管您可以直接从 Go 中提供服务,这要归功于net/http
,但有很多“重新发明轮子”之类的东西,例如全局 HTTP 标头涉及一些您可能可以避免的样板。
supervisord用于管理我的 Go 二进制文件。Ubuntu 的 Upstart(如 Mostafa 所提到的)也不错,但我喜欢 supervisord,因为它与发行版无关,并且有据可查。
主管,对我来说:
根据需要运行我的 Go 二进制文件
崩溃后重新启动
将我的环境变量(会话身份验证密钥等)作为单个配置的一部分。
运行我的数据库(以确保我的 Go 二进制文件没有它就不会运行)
TA贡献1824条经验 获得超5个赞
对于那些希望将简单的 go 应用程序作为守护程序运行的人,请使用systemd(由许多 linux 发行版支持)而不是 Upstart。
在以下位置创建服务文件
touch /etc/systemd/system/my-go-daemon.service
进入
[Unit]
Description=My Go App
[Service]
Type=simple
WorkingDirectory=/my/go/app/directory
ExecStart=/usr/lib/go run main.go
[Install]
WantedBy=multi-user.target
然后启用并启动服务
systemctl enable my-go-daemon
systemctl start my-go-daemon
systemctl status my-go-daemon
systemd 有一个单独的日志系统,可以让您跟踪日志以便轻松排除故障。
- 3 回答
- 0 关注
- 237 浏览
添加回答
举报