golang配置在centos上要注意什么
导读:在 CentOS 上配置 Go 的关键注意事项 一 安装方式与版本选择 优先选择官方二进制包解压安装(稳定、版本可控):例如在 /usr/local 解压,设置 GOROOT=/usr/local/go,并将 $GOROOT/bin 加入...
在 CentOS 上配置 Go 的关键注意事项
一 安装方式与版本选择
- 优先选择官方二进制包解压安装(稳定、版本可控):例如在 /usr/local 解压,设置 GOROOT=/usr/local/go,并将 $GOROOT/bin 加入 PATH。适合需要特定版本或离线环境的场景。
- 也可使用系统包管理器 yum/dnf 安装(便捷、易维护):如在 CentOS 7 用 yum,在 CentOS 8 用 dnf。注意仓库中的版本可能偏旧,生产上建议验证版本后再用。
- 版本建议:避免过旧版本(如 1.13 以前),选择与项目依赖匹配的稳定版本,可减少标准库与工具链兼容性问题。
二 环境变量与模块配置
- 推荐设置:
- GOROOT:Go 安装目录,二进制安装通常为 /usr/local/go。
- GOPATH:工作区目录,常用 $HOME/go(模块化后非必须,但 $GOPATH/bin 建议加入 PATH 以使用 go 工具链与可执行文件)。
- PATH:确保包含 $GOROOT/bin 与 $GOPATH/bin。
- Go Modules(Go 1.11+)为官方推荐依赖管理,建议:
- 启用:go env -w GO111MODULE=on
- 设置代理(国内常用):go env -w GOPROXY=https://goproxy.cn,direct
- 项目初始化:go mod init
- 如需恢复默认:go env -u
- 验证:执行 go version 与 go env 检查配置是否生效。
三 系统资源与网络调优
- 文件描述符限制:编辑 /etc/security/limits.conf,提升进程可打开文件数,例如:
- * soft nofile 65536
- * hard nofile 65536
- 内核网络参数(/etc/sysctl.conf)与生效:
- net.core.somaxconn = 65535
- net.ipv4.tcp_max_syn_backlog = 65535
- net.ipv4.ip_local_port_range = 1024 65535
- net.ipv4.tcp_tw_reuse = 1
- net.ipv4.tcp_fin_timeout = 30
- 执行 sysctl -p 使配置生效。
- 运行时 GC 调优(按需):通过 GOGC 调整触发频率,例如 GOGC=50 提高回收频率、降低停顿;默认值 100。
四 安全加固要点
- 系统与网络安全:
- 仅开放必要端口,使用 firewalld/iptables 做最小化放行。
- 启用并维持 SELinux 强制模式,遵循最小权限原则。
- 及时更新系统与软件包,修补漏洞。
- 应用安全(Go 服务):
- 全站 TLS 加密,启用 HSTS。
- 设置 CSP 头,防御 XSS;使用安全库防御 CSRF。
- 对所有输入做校验,使用参数化查询防 SQL 注入。
- 安全的会话管理与身份认证,妥善加密敏感数据。
- 持续日志监控、代码审计与依赖库漏洞治理。
五 部署与运维实践
- 构建与产物:
- 使用 -ldflags “-s -w” 减小二进制体积、加快启动(注意会移除符号信息,影响调试)。
- 在 CentOS 上交叉编译时,设置 GOOS=linux 与对应 GOARCH(如 amd64)再构建。
- 运行与交付:
- Go 应用为静态编译,通常只需将无后缀的可执行文件与配置部署到目标 Linux 主机,无需额外运行时。
- 建议纳入健康检查、日志轮转(如 logrotate)、进程守护(如 systemd)与监控告警。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: golang配置在centos上要注意什么
本文地址: https://pptw.com/jishu/772053.html
