DevBox

从零把网站部署到服务器

第一次部署会遇到一连串陌生名词:VPS、SSH、Docker、反向代理、HTTPS…… 这篇按顺序讲清每一步 是什么、为什么、怎么做 ,并在需要的地方给你能直接用的在线工具。跟着走一遍,你就能把一个网站真正跑在公网上。

第 1 步:准备一台服务器(VPS)

你需要一台 24 小时在线的电脑,也就是 VPS(虚拟服务器)。国内外云厂商都提供,按月付费,新手 1 核 2G 起步即可。买好后你会拿到:一个公网 IP、一个 root 密码(或密钥)。

💡 先选离你用户近的地区;域名可稍后再买,用 IP 也能先跑通。

第 2 步:连上服务器(SSH)

SSH 是远程登录服务器的方式。在自己电脑的终端里执行 ssh root@你的IP,输入密码即可进入服务器命令行。之后所有操作都在这里敲命令。

💡 Windows 用自带的 PowerShell 或 Windows Terminal 就能 ssh;更安全的做法是配置密钥登录、关闭密码登录。

第 3 步:安装运行环境(Docker)

Docker 把应用和它的依赖打包成"容器",一条命令就能跑起来,避免"在我电脑上好好的"这类环境问题。装好 Docker 和 Docker Compose 后,部署就变成了写一个配置文件。

💡 官方一键脚本:curl -fsSL https://get.docker.com | sh。

第 4 步:定义你的服务(docker-compose)

用一个 docker-compose.yml 文件描述你要跑哪些服务(网站、数据库、缓存…),然后 docker compose up -d 一次性全部启动。这是现在最主流的部署方式。

用 Docker Compose 生成器 →

第 5 步:让外网能访问(反向代理)

你的应用可能跑在服务器的某个端口(如 3000),但用户要用域名访问。反向代理(Nginx 或 Caddy)负责把 域名 的请求转发给这个端口,还能同时托管多个站点。

用 Nginx 配置生成器 →

第 6 步:加上 HTTPS(证书)

HTTPS 就是地址栏的"小绿锁",现在几乎是必需。用 Let’s Encrypt 免费证书即可;如果用 Caddy,它会自动申请和续期证书,几乎零配置。

💡 Nginx 可配合 certbot 自动续期;Caddy 则开箱即用 HTTPS。

第 7 步:自动化运维(cron 定时任务)

上线只是开始。定时备份数据库、定时清理日志、定时跑脚本——这些都交给 cron。你只要写一条 cron 表达式描述"什么时候执行",再加上要跑的命令。

用 Cron 表达式生成器 →

常见问题

部署后网站打不开、显示 502 怎么办?

多半是反向代理转发的端口和应用实际监听的端口不一致,或应用没起来。先确认容器在运行(docker compose ps),再检查 Nginx/Caddy 的 upstream 地址是否指向正确端口。

一定要买域名吗?

先用 IP + 端口也能访问、验证部署是否成功;但要配 HTTPS、给用户使用,还是需要一个域名。