1935 字
7 分钟阅读
VPS部署Hugo静态网站教程

一、VPS准备
Hugo 网站目录定为:
/var/www/html/blog创建:
mkdir -p /var/www/html/blog权限:
chown -R www-data:www-data /var/www/html/blog二、确认 Nginx 配置
配置:
nano /etc/nginx/sites-available/hugoblog内容:
server {
listen 80;
server_name 域名;
root /var/www/html/blog;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
# 静态资源缓存
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|webp|woff|woff2|ttf)$ {
expires 1y;
add_header Cache-Control "public, immutable";
}
}启用:
ln -s /etc/nginx/sites-available/hugoblog \
/etc/nginx/sites-enabled/hugoblog测试:
nginx -t
systemctl reload nginx三、VPS创建部署账号
不要让 GitHub Actions 使用 root
创建:
adduser deploy给目录权限:
chown -R deploy:deploy /var/www/html/blog四、配置 SSH 密钥
本地电脑生成:
ssh-keygen -t ed25519看到以下直接回车:
Generating public/private ed25519 key pair.
Enter file in which to save the key(C:\Users\你的用户名\.ssh\id_ed25519):然后:
Enter passphrase:设置一个密码。
生成两个文件:
C:\Users\你的用户名\.ssh\id_ed25519
C:\Users\你的用户名\.ssh\id_ed25519.pub其中:
id_ed25519 = 私钥(不要给别人)
id_ed25519.pub = 公钥(上传服务器)复制好公钥回到VPS:
su - deploy
mkdir ~/.ssh
nano ~/.ssh/authorized_keys粘贴公钥。
权限:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys测试:
ssh deploy@你的VPS_IP如果成功不会要求VPS密码而是要求本地私钥密码。
五、GitHub添加 Secrets
进入:
GitHub仓库
→ Settings
→ Secrets and variables
→ Actions
→ New repository secret添加:
VPS_HOST
内容:
你的VPS公网IPVPS_USER
内容:
deployVPS_SSH_KEY
内容:
私钥:
cat ~/.ssh/id_ed25519六、本地创建 VPS Actions
创建:
.github/workflows/deploy-vps.yaml内容:
name: Deploy Hugo to VPS
# 当代码推送到 main 分支时触发
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout 源码
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: 安装 Hugo
uses: peaceiris/actions-hugo@v3
with:
hugo-version: latest
extended: true
- name: 构建网站
run: hugo -D
- name: Deploy public to VPS
uses: burnett01/rsync-deployments@7.0.0
with:
switches: -avzr --delete
path: public/
remote_path: /var/www/html/blog/
remote_host: ${{ secrets.VPS_HOST }}
remote_user: ${{ secrets.VPS_USER }}
remote_key: ${{ secrets.VPS_SSH_KEY }}七、提交测试
本地:
git add .github/workflows/deploy-vps.yaml
git commit -m "add vps deployment"
git pushGitHub Actions:
✓ Deploy Hugo to VPS做完以上,就可以实现本地写文章,push到GitHub仓库后,GitHub Actions自动部署到VPS啦~










