在Debian上部署Golang服务,其实遵循的就是一套经典的流程:先搭好Go环境,再写代码、编译成可执行文件,最后让它跑起来。下面就把整个过程拆开聊聊,每一步都附上操作,方便直接跟着做。

如何在Debian部署Golang服务

1. 安装Go环境

首先得把Go语言装上。Debian的包管理器就能轻松搞定,一条命令搞定:

sudo apt update
sudo apt install golang-go

装完之后检查一下版本,确保环境就绪:

go version

看到输出版本号就算没问题了。

2. 编写Go代码

新建一个项目目录,在里面写一个最简单的HTTP服务。比如创建一个hello.go文件,内容如下:

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)
    }
}

这段代码在根路由上返回“Hello, World!”,监听8080端口,简单明了。

3. 构建可执行文件

hello.go所在目录里执行构建命令,生成一个名为hello的二进制文件:

go build -o hello

这一步会把所有依赖打包进去,得到一个可以直接运行的程序。

4. 运行服务

构建完成后,直接启动它:

./hello

控制台会打印“Starting server at port 8080”。此时打开浏览器访问http://your_server_ip:8080,就能看到“Hello, World!”的响应。

5. 使用systemd管理Golang服务

手动启动虽然简单,但生产环境里更希望服务能开机自启、异常重启。这时候就要借助systemd来管理了。

首先创建一个systemd服务单元文件:

sudo nano /etc/systemd/system/hello.service

填入以下内容:

[Unit]
Description=Hello World Go Service
After=network.target

[Service]
ExecStart=/path/to/your/hello
Restart=always
User=your_username
Group=your_groupname
Environment=PATH=/usr/local/go/bin

[Install]
WantedBy=multi-user.target

注意把/path/to/your/hello替换成你的可执行文件的实际路径,your_usernameyour_groupname换成运行服务的用户和组。

保存后,执行以下命令让systemd重新加载配置文件并启动服务:

sudo systemctl start hello

如果想让它开机自动运行,执行:

sudo systemctl enable hello

最后可以用status命令检查服务是否正常运行:

sudo systemctl status hello

这样一来,你的Go服务就稳稳地跑在Debian上了,哪怕机器重启也能自动拉起。根据实际情况调整路径和用户信息就好,其他环节几乎不用动。

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