Skip to content
VDS · 网站与 Web 服务器

静态站点:从文件到域名

落地页或 React、Vue 构建产物的完整路径:把文件上传到 VPS、用 Web 服务器提供访问、绑定域名,并在不停机的情况下更新。

更新于 2026年8月23日

静态站点是一组现成的文件:HTML、CSS、图片、前端构建产物。它既不需要 PHP,也不需要数据库,因此在 VDS-1 上也能轻松运行,并且能承受相当可观的流量:最高 500 Mbit/s。

把文件放在哪里

为每个站点创建单独的目录:

mkdir -p /var/www/example.ru
chown -R www-data:www-data /var/www/example.ru

用普通的 scp 或 rsync 从本地机器上传:

scp -r ./dist/* root@YOUR_ADDRESS:/var/www/example.ru/
rsync -avz --delete ./dist/ root@YOUR_ADDRESS:/var/www/example.ru/

rsync --delete 会删除服务器上已不在构建产物中的文件。没有它,旧的 JS 分块会年复一年地堆积。

通过 Web 服务器提供服务

最小的 Nginx 配置:

server {
    listen 80;
    server_name example.ru;
    root /var/www/example.ru;
    index index.html;

    location / {
        try_files $uri $uri/ /index.html;
    }

    location ~* \.(js|css|png|jpg|svg|woff2)$ {
        expires 30d;
        add_header Cache-Control "public, immutable";
    }
}

try_files ... /index.html 这一行是 React、Vue 和 Svelte 构建的单页应用所必需的:没有它,直接访问 /about 会返回 404。

接下来是 Let's Encrypt 证书,站点就可以通过 HTTPS 打开了。

域名

在域名面板中,创建一条指向机器公网地址的 A 记录(/hosting/vds/m/<id> 中的“概览”标签页),并为 www 创建同样的记录。检查:

dig +short example.ru

记录生效最多可能需要几个小时。在等待期间,可以通过机器地址访问站点。

无停机更新

不要把文件直接上传覆盖正在运行的目录——访客可能会看到构建到一半的站点。请在旁边构建,然后切换符号链接:

rsync -avz ./dist/ /var/www/releases/$(date +%s)/
ln -sfn /var/www/releases/1724400000 /var/www/example.ru-current
systemctl reload nginx

配置中的 root 随后指向 /var/www/example.ru-current。

常见错误

现象原因
页面空白,控制台中对 JS 报 404文件构建时用了错误的 base——请检查打包工具设置
部分访客看到旧版本浏览器缓存——请使用带哈希的文件名
所有请求都返回 403目录对 Web 服务器用户不可读
只有首页能打开单页应用缺少 try_files

最好在本地构建前端,然后上传构建好的 dist。在内存为 2 GB 的 VDS-1 上,构建大型项目可能因内存不足而失败。