Website 部署指南
本文档说明如何将 website/ 目录(VitePress 站点)构建并部署到远程云服务器,通过 Nginx 在 80 端口提供静态文件服务。
为什么使用 Nginx?
- Vite / VitePress 的
preview模式仅供临时预览,关闭终端即停止,不适合生产环境。 - Nginx 是专业的静态资源服务器,支持持久运行、并发处理、gzip 压缩、缓存策略以及后续 HTTPS(443 端口)扩展。
前置条件
- 一台可通过 SSH 访问的 Linux 云服务器(示例:
visus@112.74.45.241) - 服务器已开放 80 端口(安全组/防火墙)
- 本地已安装 Node.js、npm、PowerShell(Windows)或 Bash(Linux/macOS)
服务器端:安装与配置 Nginx
SSH 登录服务器后执行以下步骤(仅需执行一次):
1. 安装 Nginx
bash
sudo apt update && sudo apt install -y nginx2. 创建站点配置
创建文件 /etc/nginx/sites-available/auto-website:
nginx
server {
listen 80;
server_name 112.74.45.241; # 如有域名请替换
root /home/visus/auto-website;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
# 静态资源缓存
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2)$ {
expires 1M;
add_header Cache-Control "public, immutable";
}
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml;
}注意:将
server_name和root路径替换为你的实际 IP/域名和服务器用户名。
3. 启用配置
bash
sudo ln -sf /etc/nginx/sites-available/auto-website /etc/nginx/sites-enabled/
sudo rm -f /etc/nginx/sites-enabled/default
sudo nginx -t && sudo systemctl restart nginx4. 确保家目录可被 Nginx 访问
Nginx worker 进程通常以 www-data 用户运行,需要能够进入你的家目录:
bash
chmod 755 /home/visus
mkdir -p /home/visus/auto-website本地:构建与部署
方式一:使用 deploy-website.ps1(推荐)
项目的 scripts 目录提供 scripts/deploy-website.ps1,它会自动完成构建、打包、上传和解压。
powershell
.\scripts\deploy-website.ps1脚本流程:
- 在本地执行
npm run build生成静态文件(输出到website/.vitepress/dist) - 将
dist打包为 tar.gz - 通过 SCP 上传到服务器的
/tmp - 通过 SSH 解压到
/home/visus/auto-website
方式二:手动部署
powershell
# 1. 构建
cd website
npm run build
# 2. 打包上传
tar -czf auto-website-dist.tar.gz -C .vitepress/dist .
scp auto-website-dist.tar.gz visus@112.74.45.241:/tmp/
# 3. 服务器端解压
ssh visus@112.74.45.241 "rm -rf /home/visus/auto-website/* && tar -xzf /tmp/auto-website-dist.tar.gz -C /home/visus/auto-website && rm /tmp/auto-website-dist.tar.gz"故障排查
403 Forbidden
- 原因:
auto-website目录为空,或 Nginx 没有权限读取文件。 - 解决:检查
/home/visus/auto-website是否包含index.html;确认家目录权限为755(chmod 755 /home/visus)。
500 Internal Server Error
- 原因:Nginx 配置中的
root指向的目录不存在,或上级目录权限不足导致 Nginx 无法进入。 - 解决:确保
mkdir -p /home/visus/auto-website已执行,且chmod 755 /home/visus已设置。
修改后不生效
- 浏览器可能缓存了旧页面,尝试 Ctrl + F5 强制刷新。
- 若修改了 Nginx 配置,需在服务器执行
sudo nginx -s reload。
后续扩展:启用 HTTPS
若后续要为网站添加 SSL 证书,只需在 Nginx 配置中增加 443 端口监听和证书路径,无需改动应用代码。推荐使用 Certbot 自动申请 Let's Encrypt 证书。