—— 写给完全没接触过的小白
这篇文章不聊具体命令,只回答一个问题:把一个网站放到互联网上,到底是怎么回事?
一、一个比喻先讲明白:开餐馆
你写好了一个网站(或者说拿到了一个现成的博客程序),就像你研究出了一份菜谱。
菜谱放在家里,客人吃不到。要让客人吃上饭,你需要:
"部署"就是后面这一整套活儿的总称:让一个本来只存在于你电脑上的程序,变成任何人打开浏览器输入网址就能用的服务。
二、为什么程序不能直接"放上去"就完事?
很多人以为部署 = 把文件传到服务器。不对。原因如下:
1. 你的电脑和服务器是两个世界
你电脑上能跑这个程序,是因为你电脑上恰好装了它需要的一切:某个版本的 Python/Java/Node.js、某个数据库、一堆依赖库……
服务器是一台刚装好操作系统的"裸机"(通常只有 Linux),什么都没有。程序要跑起来,缺一样都得补上,而且版本还得对。
2. 程序往往不止一个零件
一个网站通常至少有三块:
前端(用户看到的页面)
后端(处理逻辑的程序,要 7×24 小时运行)
数据库(存数据,文章、账号、订单……)它们要分别安装、启动、互相连接、还要保证一个挂了另一个能撑住。这是几件独立的事,不是"传个文件"。
3. 程序要"永生",而人会下班
你自己电脑上跑程序:关机就停。但网站必须24 小时在线——你睡觉时,地球另一端的人可能正在访问。
所以程序在服务器上要被配置成"后台服务":终端关了它照跑、崩了自动重启、开机自动拉起。这也是部署的一部分。
三、部署到底包含哪些事?(通用清单)
不管部署什么项目(博客、小程序后端、爬虫),流程基本都是这六步:
第 1 步 连上服务器 (SSH 远程登录)
第 2 步 装运行环境 (装 Docker / Python / Node.js……)
第 3 步 把程序弄上去 (下载镜像 / 上传代码)
第 4 步 配置和启动 (改配置文件、设开机自启、启动程序)
第 5 步 开门迎客 (防火墙/安全组放行端口,配 nginx 入口)
第 6 步 验收和维护 (浏览器测试、看日志、备份数据)新手最容易栽跟头的地方,恰恰是最不起眼的第 5 步——程序明明启动成功了,浏览器就是打不开,折腾半天发现是防火墙没放行端口。程序跑起来只是"内部就绪","外面的人进得来"是另一回事。
四、"云服务器"到底是什么?
就是放在专业机房里、24 小时开机、带公网 IP 的一台电脑。
它本质上和你家的电脑一样(有 CPU、内存、硬盘),只是它住在恒温恒湿、不断电的机房里
"云"的意思:你不用买整台物理机,阿里云把大机器切成无数小份虚拟机租给你,2核2G 一年两百多块
你通过 SSH(加密远程连接)操作它,就像坐在它面前敲键盘一样
为什么不用自己电脑当服务器? 可以,但你电脑一关机网站就挂,家庭宽带还没固定公网 IP。机房机器就是为"永不下线"设计的。
五、Docker:部署界最大的革命,用大白话讲
没有 Docker 的年代
部署一个程序 = 手工装一堆依赖。装 Java、装数据库、配环境变量、调版本……
痛点在于:"在我电脑上是好的" ——你按教程装了 Java 8,教程其实要 Java 11;数据库版本差一点,程序起不来。换台服务器部署,同样的坑再踩一遍。
Docker 的思路:连锅端
Docker 把程序和它需要的全部环境(运行时、依赖库、配置)打包成一个标准包裹,叫镜像(image)。
类比:以前搬家,你的家具到了新家可能装不上(新家螺丝型号不一样)。 Docker 是把整个房间打包运过去——房间里的桌子螺丝、台灯插头全都是原配的,放哪儿都能用。
三个词就够用了:
为什么大公司小项目都用它
一次打包,到处运行:你的服务器、朋友的电脑、公司的机房,跑起来一模一样
干净:每个容器互相隔离,A 程序要的旧版库不会弄坏 B 程序
好清理:不要了就删容器,系统里不留垃圾
六、nginx 是干嘛的?为什么几乎每个网站前面都有它
nginx 是一个专门"接待网络请求"的程序,站在网站最前面当门面:
访客 ──→ nginx(80端口,唯一入口)──→ 分发给后面的程序它干三件核心的事:
统一入口:访客只看到 80/443 端口,后面程序用哪个端口、有几台,访客不知道也不需要知道
转发请求(术语叫"反向代理"):访问首页的给它静态页面,访问 /api/ 的转给后端程序——nginx 像前台接待员,按需求把访客引到对的窗口
干杂活:配 HTTPS 证书、把多台服务器凑成一队分摊流量、缓存图片提速
为什么不让访客直接访问后端程序? 可以(临时测试时经常这么干),但正式上线不这么干:后端程序暴露在公网容易被攻击,而且没有统一入口,以后加功能、扩容都是灾难。
七、域名、IP、备案——三个常被问到的词
IP 地址:服务器的数字门牌(116.62.233.148),能用但难记
域名:给 IP 起的人类好记的名字(baidu.com),买了域名后通过"DNS 解析"把域名指向你的 IP
ICP 备案:在中国大陆的服务器上用域名对外提供网站服务,法律要求先向工信部登记(免费,走阿里云流程约 1~2 周)。用 IP 直接访问不需要备案——所以很多人先拿 IP 调试,备案下来再绑域名
八、把一切串起来:一个网站的"出生"全过程
你在浏览器输入 myblog.com
│
▼
DNS 解析:查这个域名对应哪台服务器的 IP
│
▼
请求到达服务器,先过防火墙(安全组):
"80 端口放行了吗?放行了,进。"
│
▼
nginx 接待:"你要看首页?给你静态页面。
你要提交评论?我转给后端程序。"
│
▼
后端程序处理:"这篇评论存进数据库,顺便查一下
这篇文章的作者是谁……"
│
▼
数据库读写完成,后端组装响应,原路返回
│
▼
你的浏览器显示出网页 —— 全程只花零点几秒所谓部署,就是把这条链路上的每一环都搭好、连上、跑起来。
九、新手阶段的三条心法
报错不是坏事,是线索。程序起不来、页面打不开,先看日志(log)——日志就是程序的"病历",90% 的问题日志里写得明明白白。
一次只改一个地方。改了配置没生效?先确认改对了文件、重启了服务,再查下一个。同时改三处,出问题都不知道是谁的锅。
先跑通,再优化。第一遍部署别追求完美,能访问了再逐步加固(HTTPS、备份、监控)。跑通一遍的成就感会让你把剩下的坑都填完。
写于 2026-09-15。