Mr.Gu's StudioMr.Gu's Studio
开通会员 · 查看专属内容
笔记 Windows Go 本地运行环境部署

第一步:安装 Go SDK 与环境配置

  1. 从官方/镜像站(golang.google.cn/dl/)安装 Go,默认路径为 C:\Program Files\Go。
  2. 打开 ​**PowerShell(管理员身份)**​,执行以下命令配置模块与国内镜像代理:
# 开启模块支持并配置国内代理
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct
  1. 确保用户的 go\bin 工具目录在系统环境变量中:
$userPath = [Environment]::GetEnvironmentVariable("Path", "User")
$goBin = "$env:USERPROFILE\go\bin"
if ($userPath -notlike "*$goBin*") {
    [Environment]::SetEnvironmentVariable("Path", "$userPath;$goBin", "User")
}

第二步:准备 NSSM 工具

  1. 前往 NSSM 官网 下载压缩包(如 nssm-2.24.zip)。
  2. 解压后将 win64 目录下的 nssm.exe 复制到全局路径目录(例如 C:\Users\Admin\go\bin 或 C:\Windows\System32)。
  3. 验证命令行可用:
nssm -version

第三步:编译项目二进制程序

在注册系统服务前,​严禁通过命令行或后台命令提前启动程序​,否则会导致后续服务拉起时端口冲突。

# 进入项目目录并拉取整理依赖
Set-Location "D:\myapi\cms\bbs"
go mod tidy

# 编译生成 Windows 独立可执行程序
go build -o bbs.exe .

第四步:注册并配置 Windows 系统服务(一次性完成)

​先配置好路径和日志参数,再启动服务​:

# 1. 注册服务名称并绑定可执行文件路径
nssm install bbs-service "D:\myapi\cms\bbs\bbs.exe"

# 2. 设置工作目录(关键:确保读取同级目录下的配置、模板和静态资源)
nssm set bbs-service AppDirectory "D:\myapi\cms\bbs"

# 3. 挂载标准输出与错误日志文件
nssm set bbs-service AppStdout "D:\myapi\cms\bbs\service_stdout.log"
nssm set bbs-service AppStderr "D:\myapi\cms\bbs\service_stderr.log"

# 4. 启动服务
nssm start bbs-service

第五步:验证运行状态与日志

执行以下检查命令,确保服务处于 SERVICE_RUNNING 且端口正常监听:

# 1. 查看服务状态(必须显示 SERVICE_RUNNING)
nssm status bbs-service

# 2. 检查程序进程与 PID
Get-Process -Name bbs

# 3. 检查端口监听(以进程 PID 筛选网络连接状态)
$pidNum = (Get-Process -Name bbs).Id
Get-NetTCPConnection -OwningProcess $pidNum -State Listen | Select-Object LocalAddress, LocalPort, State

# 4. 查看服务输出日志
Get-Content "D:\myapi\cms\bbs\service_stdout.log" -Tail 20

日常运维管理速查卡

操作场景 执行命令
代码更新后重新部署 nssm stop bbs-service``go build -o bbs.exe .``nssm start bbs-service
查看实时运行日志 Get-Content "D:\myapi\cms\bbs\service_stdout.log" -Wait
查看异常崩溃日志 Get-Content "D:\myapi\cms\bbs\service_stderr.log" -Tail 30
重启服务 nssm restart bbs-service
停止服务 nssm stop bbs-service
彻底卸载服务 nssm stop bbs-service``nssm remove bbs-service confirm

  • 修改完文件直接一键重启
nssm stop bbs-service
go build -o bbs.exe .
nssm start bbs-service
Mr.Gu's Studio

会员登录