Golang 服务器部署:最佳实践 — 二进制文件部署
在 Go 语言项目部署中,直接上传源代码并非最佳实践。 推荐的做法是先在本地编译生成可执行二进制文件,再将该文件部署到服务器。
部署步骤:
本地编译:
使用
命令在本地环境编译项目,生成可执行文件 (例如
)。
可选压缩:
为了减小文件大小,提高传输效率,可以使用工具(如 UPX)压缩生成的二进制文件。
安全上传:
通过 SSH 或 SCP 等安全工具将压缩后的二进制文件上传至服务器。
直接运行:
在服务器上,直接运行该二进制文件即可启动应用程序。无需源代码,也避免了服务器端编译的复杂性。
避免源代码上传的理由:
CentOS Linux 7.9.2009
CentOS Linux 7.9.2009是传统CentOS Linux 7的最后主要版本,也是很多企业历史服务器中仍可能遇到的系统版本。它以稳定、兼容RHEL 7生态、文档丰富和软件支持广泛著称,曾长期用于Web服务、数据库、虚拟化节点和企业内部业务系统。不过CentOS Linux 7已于2024年6月30日停止维护,现在继续使用会面临安全补丁缺失风险。该版本更适合旧业务迁移、历史环境恢复或离线兼容性测试。
下载
立即学习
“
go语言免费学习笔记(深入)
”;
安全性:
源代码可能包含敏感信息(如 API 密钥、数据库连接字符串等),直接上传存在安全风险。
依赖环境:
服务器环境可能缺少项目所需的编译依赖,导致源代码无法编译运行。
跨平台编译:
如果您的开发环境(例如 macOS)与服务器环境(例如 Linux)不同,需要进行交叉编译。 可以使用
和
环境变量以及
编译标志,并设置
来禁用 cgo,以生成目标平台的可执行文件。
go buildmainGOOSGOARCH-targetCGO_ENABLED=0