1、购买服务器
tip:服务器和域名最好都在一个地方购买,目前国内常用的有阿里云、腾讯云和华为云
以阿里云为例,进入阿里云官网后,点击产品,然后选择云服务器ECS(阿里云和腾讯云都提供三个月的免费额度,可以先用免费的云服务器),操作系统选择centos,接下来跟着指引和个人喜好配置即可。
2、Xshell
进入Xshell官网XSHELL – NetSarang Website,点击下载,然后选择右侧的“免费授权界面”,下载免费版即可,够用
下载完成后运行Xshell,点击新建会话,会话名称随便,主机地址填公网IP(阿里云服务器控制台中有)
3、宝塔面板
进入宝塔官网后,复制centos系统的安装命令,复制到Xshell中
下载完成之后,会给出宝塔面板的账号密码以及外网内网地址
在Xshell中输入命令
查看宝塔面板服务状态(Active: active (running))表明服务正在运行
systemctl status bt如果未运行,启动宝塔面板服务
systemctl start bt获取面板访问地址
/etc/init.d/bt default设置开机后自动启动宝塔
systemctl enable bt
宝塔启动后,大多数服务器会禁止8888端口,所以还需要到服务器控制台的安全组新增8888端口(允许任何来源)然后输入外网地址,输入账号密码后,即可访问宝塔面板
建议在宝塔的“安全”菜单项中重新设置宝塔面板的端口(8888太常见而且会有冲突风险)
4、部署项目方式一(使用宝塔「Go项目管理器」)
①进入宝塔面板 → 「软件商店」→ 搜索「Golang」→ 点击「安装」
安装完成后,需要「安装版本管理器」,然后选择一个稳定版SDK
②上传博客项目代码
通过宝塔「文件」管理器,进入 /www/wwwroot/ 目录,新建一个文件夹,如 mygoblog,将你的Go博客项目所有文件上传到这个目录。如果文件数超出限制,选择上传压缩包,然后目录下解压即可
③在服务器上编译项目
进入项目目录
cd /www/wwwroot/mygoblog
下载依赖(如果你有 go.mod 文件)
go mod tidy
编译成可执行文件
go build -o myblog
编译完成后,目录下会多出一个 myblog 文件(没有后缀名),这就是可执行文件。
④添加go项目
进入「网站」→「Go项目」→ 点击「添加Go项目」
填写配置:
| 配置项 | 填写说明 |
|---|---|
| 项目执行文件 | 选择刚才编译出的myblog文件 |
| 项目名称 | 自定义,如mygoblog |
| 项目端口 | 你的Go程序监听的端口(在代码中配置的,如8080) |
| 执行命令 | 一般为空,除非你的项目有特殊启动命令(如web) |
| 运行账号 | 建议选择www(更安全),除非项目需要root权限 |
| 开机启动 | 建议勾选 |
⑤绑定域名/公网IP
- 在下方的「域名管理」中,添加你的访问地址
- 如果没有域名,填写你的****公网IP:端口
- 勾选「允许外网访问」
⑥放行端口
如果勾选了外网访问,需要:
- 在阿里云安全组中,放行你的项目端口(如8080)
- 宝塔「安全」→「放行端口」中也要放行该端口
⑦启动项目
点击「提交」,然后点击「启动」即可。
5、方式二(使用docker)
①上传代码到数据目录
将你的博客项目上传到:/www/dk_project/wwwroot/ 目录下
②进入Docker网站功能
宝塔面板 → 「Docker」→「网站」→「运行环境」
③创建Go运行环境
- 点击「创建」→ 环境类型选择「Go」
- 选择Go版本(推荐 1.22+)
- 填写启动命令(你的项目启动命令,如 **
./myblog或go run main.go)
④创建网站
- 创建好运行环境后,点击右侧「创建网站」
- 填写域名或公网IP
- 勾选「允许外部访问」,并在云服务商安全组中放行对应端口
操作完成后,访问你的Go博客需要通过****公网IP或域名,格式为 http://服务器公网IP:项目端口。
6、让博客在后台文档运行
①进入宝塔面板 → 「网站」→「Go项目」
②添加项目,选择执行文件 ./myblog
③设置端口 8080
④勾选「开机自启」
7、自动拉取更新
在Goblog的根目录下新建脚本文件:
#!/bin/bash
cd /www/wwwroot/Goblog || exit 1
echo "停止旧进程..."
pkill -9 Gobloge
cho "拉取最新代码..."
sudo -u www git pull || exit 1
echo "重新编译..."
go build -o Goblog || exit 1
echo "启动新进程..."
sudo -u www nohup ./Goblog > blog.log 2>&1 &
echo "更新完成!新进程 PID: $!"
暂无评论,快来抢沙发吧!