商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > Debian如何部署Golang服务

Debian如何部署Golang服务

  发布于2026-07-14 阅读(0)

扫一扫,手机访问

在Debian系统上部署Golang服务,其实比想象中要直截了当——只要把几个关键步骤走通,后面就是重复利用的流程了。下面直接进入正题,从环境准备到自启动配置,一步步拆解。

Debian如何部署Golang服务

1. 安装Go语言环境

不用绕弯子,先确认你的Debian里有没有装Go。如果还没装,两条命令搞定:

sudo apt update
sudo apt install golang-go

装完之后,记得验证一下——很基础但容易忘的一步:

go version

看到版本号输出,说明环境就绪了。

2. 创建Go项目

找个顺手的目录,新建一个项目文件夹,然后进去:

mkdir my-golang-service
cd my-golang-service

接着初始化Go模块,这一步能让后续依赖管理清晰很多:

go mod init my-golang-service

模块名可以自定义,但建议和服务名保持一致,方便识别。

3. 编写Go服务代码

在项目目录下创建main.go,写一个最简HTTP服务作为示例。当然,实际业务代码你可以替换成自己的逻辑:

package main

import (
    "fmt"
    "net/http"
)

func main() {
    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        fmt.Fprintf(w, "Hello, World!")
    })
    fmt.Println("Starting server at port 8080")
    if err := http.ListenAndServe(":8080", nil); err != nil {
        fmt.Println(err)
    }
}

这段代码启动一个监听8080端口的HTTP服务,访问根路径返回“Hello, World!”。

4. 构建Go服务

写完之后,编译生成可执行文件。直接在项目目录下运行:

go build -o my-golang-service

注意-o参数指定输出文件名,不指定的话默认是当前目录名(Windows下会是.exe)。编译完成后,你会看到一个二进制文件躺在当前目录里。

5. 部署Go服务

把编译好的二进制文件传到你的Debian服务器上。最常用的方式是用scp

scp my-golang-service user@your-server-ip:/path/to/deploy

这里把useryour-server-ip/path/to/deploy替换成你自己的信息。当然,你也可以用rsync、ftp或者直接挂载目录复制,怎么顺手怎么来。

6. 运行Go服务

登录到服务器,进入部署目录,直接执行那个二进制文件:

cd /path/to/deploy
./my-golang-service

如果一切正常,控制台会输出“Starting server at port 8080”。这时在浏览器里访问http://你的服务器IP:8080,就能看到响应了。

7. 设置开机自启动(可选)

手动启动的服务,一旦服务器重启就会丢失。想让服务随系统启动,推荐用systemd来管理。

先创建一个service文件:

sudo nano /etc/systemd/system/my-golang-service.service

写入以下内容(注意替换路径和用户信息):

[Unit]
Description=My Golang Service
After=network.target

[Service]
ExecStart=/path/to/deploy/my-golang-service
Restart=always
User=your-user
Group=your-group
Environment=PATH=/usr/local/go/bin

[Install]
WantedBy=multi-user.target

保存退出后,依次执行:

sudo systemctl daemon-reload
sudo systemctl enable my-golang-service
sudo systemctl start my-golang-service

到这里,服务就已经注册为系统服务,即使服务器重启也会自动启动。如果想验证状态,可以用sudo systemctl status my-golang-service查看。

整个流程走下来,你会发现Debian上部署Go服务其实没什么特殊门槛——无非就是装环境、写代码、编译、传文件、启动,最后用systemd锁住。把这套流程固化下来,以后每次部署新服务都能复用。

本文转载于:https://www.yisu.com/ask/36401466.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注