Golang 服务器部署:最佳实践 — 二进制文件部署
在 Go 语言项目部署中,直接上传源代码并非最佳实践。 推荐的做法是先在本地编译生成可执行二进制文件,再将该文件部署到服务器。
部署步骤:
- 本地编译: 使用 go build 命令在本地环境编译项目,生成可执行文件 (例如 main)。
- 可选压缩: 为了减小文件大小,提高传输效率,可以使用工具(如 UPX)压缩生成的二进制文件。
- 安全上传: 通过 SSH 或 SCP 等安全工具将压缩后的二进制文件上传至服务器。
- 直接运行: 在服务器上,直接运行该二进制文件即可启动应用程序。无需源代码,也避免了服务器端编译的复杂性。
避免源代码上传的理由:
- 安全性: 源代码可能包含敏感信息(如 API 密钥、数据库连接字符串等),直接上传存在安全风险。
- 依赖环境: 服务器环境可能缺少项目所需的编译依赖,导致源代码无法编译运行。
跨平台编译:
如果您的开发环境(例如 macOS)与服务器环境(例如 Linux)不同,需要进行交叉编译。 可以使用 GOOS 和 GOARCH 环境变量以及 -target 编译标志,并设置 CGO_ENABLED=0 来禁用 cgo,以生成目标平台的可执行文件。