
如果你和我一样第一次开始“网站部署”这个任务时最先卡住的环节往往不是代码而是那一台服务器到底在哪买、买什么配置、买回来之后第一件事做什么。我当年在云平台的控制台里把产品页翻来覆去看了好几遍下单前光是选规格就犹豫了一个下午买完之后又发现网页怎么都打不开最后排查半天才知道是安全组没放行80端口。这篇教程就是网站部署系列的第一篇记录云服务器的购买和简单部署流程以国内某主流云平台为例。跟着做你能从零拥有一台可以对外提供网页服务的服务器并且用IP地址在浏览器里访问到自己部署的页面。这台服务器能做什么它可以跑个人博客、企业官网、小程序后端、学习环境也可以只是当作一台随时可以折腾的Linux机器。文章适合完全没有云服务器基础的人我会尽量把每一个按钮和命令都写清楚顺便讲清楚“为什么这么操作”而不是只给步骤。毕竟买服务器这件事最怕的不是不会点鼠标而是不知道自己在买什么、买完要做什么。1. 动手之前先回答“我要用这台服务器干什么”1.1 云服务器和本地电脑差别到底在哪很多人会问我自己电脑明明也能跑网站为什么要买一台云服务器这个问题的答案决定了你后续所有选择。本地电脑处于家庭宽带或校园网环境IP地址通常是动态的路由器重启很可能就变了而且电脑不能保证7×24小时开机一旦断电或者休眠网站就下线了。更麻烦的是如果直接把服务暴露在公网家庭网络的路由器配置、运营商封锁、动态IP解析这些问题会把人折腾到怀疑人生。云服务器把这些琐事全部承接了它有固定的公网IP、独立电源和网络环境、放在机房7×24小时运行你只需要远程登进去部署自己的应用。用一个生活化的类比本地运行网站好比在家里做饭要自己买菜、洗菜、盯火候一顿饭忙下来锅碗瓢盆全要自己收拾云服务器相当于去一家中央食堂包月你只管到点吃饭后厨的灶台、燃气、消防都有人管。所以买云服务器的本质是花钱买“稳定的运行环境”和“固定的公网入口”。1.2 按需求反推配置而不是盲目追高买服务器最怕两件事一是买低了跑不动二是买高了白花钱。我见过不少新手一上来就买“建议配置”里的顶配结果只放了一个纯静态主页CPU占用常年不到5%这就是典型浪费。我在实操中通常建议先列出用途再从用途反推配置。这里给一份可以直接参考的表格典型用途CPU/内存公网带宽系统盘说明学习Linux/跑通部署流程1核1G至1核2G1-3Mbps40G最低成本练手个人博客/静态站点1核2G3-5Mbps40-60G主流选择性价比高小型企业官网/小程序后端2核4G5-10Mbps60-80G可承载一定真实业务数据库/微服务学习实验2核4G以上按流量或更高带宽100G以上内存和IO优先为什么要重视内存而不是只盯CPU核数因为网站类应用尤其是跑PHP、Java、数据库的瓶颈通常先出现在内存上。1核1G跑Nginx托管静态页面问题不大但一旦装上数据库和多个服务内存很容易被打满系统会开始使用Swap交换空间机器就会变得非常卡。带宽这边也提醒一下云厂商口中的1Mbps带宽实际下载速度约为128KB/s。纯HTML页面勉强可以如果网页里有图片、CSS、JS首次加载就会明显慢。个人博客我建议至少3Mbps企业站根据图片资源量选择5Mbps以上。1.3 包年包月和按量付费怎么选在下单页面计费模式通常有“包年包月”和“按量付费”两种。我的经验是计划长期运行、目标明确的网站选包年包月只是临时学习、测试选按量付费。按量付费用多久算多久适合搭一套环境验证完就释放但一定要记得关机和释放资源否则会有持续计费。这里还要说一个容易忽略的点活动页面的首年低价不等于续费价格。很多新手看到“一年几十块钱”就冲了第二年续费时才发现价格贵了好几倍。下单前务必要看“续费价格”或“购买页价格明细”把成本结构算清楚再决定。这类云端实例的费用通常由几部分组成实例规格费、公网带宽费、系统盘存储费。公共服务系统镜像比如Ubuntu、CentOS官方镜像一般不额外收费但如果你选了特定商业镜像费用会单列出来。下单时在费用明细里逐项看一眼就不会稀里糊涂被套餐文案误导。2. 下单页面上的关键选项地域、镜像、磁盘、带宽逐个选2.1 地域选择影响延迟也影响后续迁移成本进入购买页面第一个要选的是地域也就是服务器机房所在的城市。原则很简单你的访问者在哪里服务器就放哪里。个人学习无所谓就近选一个即可如果是给特定区域的用户访问选择该区域附近的机房网络延迟会明显更低。地域还有一种“隐藏成本”一旦实例创建在某个地域想换另一个地域不能直接搬只能通过镜像复制、数据迁移等方式重建。对新手来说这个过程挺折腾的所以我建议买之前先想清楚主要给谁用。可用区同一地域下的不同机房的选择一般不需要花太多心思。默认分配一个即可除非你有高可用需求会把应用部署在两个可用区形成主备。2.2 镜像Ubuntu、CentOS还是Windows镜像就是操作系统的“出厂快照”。新手在选择时经常犹豫我给出几条实际参考Ubuntu 22.04 LTS社区资料多软件源对新手友好适合跑Nginx、MySQL、PHP这类常见组合。CentOS Stream / Rocky LinuxCentOS 8停更之后官方推荐方向有所变化很多老运维转向Rocky或保留习惯使用其他系统这类适合以后想往运维方向走的人。Windows Server只有当应用明确依赖Windows环境比如.NET开发、需要使用图形界面时才建议选否则不推荐——Windows镜像占用资源更多费用也更高。对于本篇的部署目标我的建议是选择Ubuntu 22.04 LTS。它生命周期长未来两三年内不用频繁操心升级大版本的问题。2.3 系统盘和数据盘容量与类型怎么权衡系统盘是服务器安装操作系统和跑关键服务的磁盘默认容量一般40G起步。这里有一条实操建议容量够不够看需求但类型一定要选固态类的因为磁盘I/O直接影响网站性能在云平台上不同性能等级的云盘读写速度差异肉眼可见。对于个人博客40G通常够用如果打算装数据库、存储用户上传的图片建议直接选60G或更大省得以后扩容时还要折腾。这里也顺带说一句数据盘如果购买页面有“添加数据盘”的选项新手第一阶段可以不买。系统盘已经能承载系统和网站程序数据盘一般是给数据库文件、日志文件做独立存储用的等网站真实跑起来、磁盘空间吃紧时再添加也不迟。2.4 固定带宽和按量流量新手怎么选带宽计费主要两种差异用一个表格就能看明白计费方式适用场景优点风险固定带宽持续稳定访问的网站费用可控不会突然爆账单峰值不高时有点浪费按使用流量访问量很低或突发型应用用得少花得少被恶意刷流量时账单可能吓人我在这一期教程里更推荐新手选固定带宽3Mbps或5Mbps起步。预算能算清不会半夜收到一条扣费短信。等到网站流量起来、对网络有了把握再根据监控数据换到按量计费。下单之前最终再检查一次费用明细实例费、带宽费、系统盘费以及活动价对应的“原价续费”是什么水平。看清楚这些之后点击下单你的第一台云服务器就算买回来了。创建过程一般需要几十秒到几分钟控制台里实例状态变为“运行中”后就可以继续下一步。3. 安全组与登录凭证下单一秒访问却打不开先检查这两处3.1 安全组是云端的“安检门”实例创建好之后一般在控制台会看到公网IP、默认用户名等信息。很多新手拿到IP就直接往浏览器里输结果页面转圈半天打不开于是开始怀疑服务器是不是坏了。实际上八成的原因是安全组没有放行对应端口。安全组可以理解为一道放在云服务器前面的访问控制规则哪些来源IP、通过哪个协议、访问哪个端口能进能出都靠它把关。默认创建实例时云平台通常只放行SSH远程登录TCP 22、Windows远程桌面TCP 3389和ping测试ICMP并不会放行HTTP的80端口和HTTPS的443端口。这意味着就算Nginx装好了外部也可能访问不到网页。所以搭建网站前的标准操作是在控制台进入实例详情找到“安全组”添加入方向规则。我这里给一份常规网站的规则列表方向协议端口来源用途入方向TCP22运维IP或0.0.0.0/0SSH远程登录入方向TCP800.0.0.0/0对外HTTP访问入方向TCP4430.0.0.0/0对外HTTPS访问入方向TCP3306仅数据库客户端IPMySQL访问尽量不公开这里特别注意3306端口数据库默认端口千万不要对全网开放否则等于把数据库裸奔在公网暴力破解工具对着它扫一夜安全风险非常大。如果确实需要远程连数据库只放行你正在使用的那一个IP。这个“最小放行”原则在后续运维阶段会反复出现。3.2 登录凭证密码登录和密钥对登录的选择创建实例时云平台都会要求设置登录凭证通常是密码或密钥对两种方式。新手阶段我建议先选密码登录把流程跑通最重要。设置密码时别用“123456”这种也别用生日、手机号建议至少大小写字母加数字混合长度不少于12位。记住这是你的服务器大门钥匙。密钥对登录安全性更高适合以后长期管理的服务器公钥放在云端私钥保存在自己电脑。但密钥对有个麻烦点私钥文件一旦丢失基本等于锁门恢复起来很麻烦。如果选择密钥对下单时一定要把私钥下载保存到安全的地方同时建议保留密码登录作为应急通道。另外说一个很多人踩过的细节在控制台重置实例密码或密钥时部分平台要求实例处于停止状态才能操作。这意味着如果你登录不上还要先去控制台“停止”实例再重置然后再启动。第一次操作时别慌看清页面提示即可。安全组和登录凭证都处理好了才算真正具备“登录服务器”的条件。4. 第一次远程连接并部署Nginx这台机器开始干活4.1 用SSH连上自己的服务器从这一步开始操作从网页控制台转移到了终端。如果你用的是macOS或Linux直接打开终端TerminalWindows用户可以用自带的PowerShell也可以安装一个远程终端工具比如MobaXterm这类工具对新手更友好支持标签页和文件传输。连接命令很简单ssh 用户名公网IP比如云平台给你的默认用户名是root公网IP是1.2.3.4命令就是ssh root1.2.3.4。首次连接时终端会显示是否信任主机指纹的提示输入yes并回车接着输入密码只要看到命令行提示符变成rootxxx:~#就说明登录成功了。补充一点有些系统镜像默认用户名不是root而是ubuntu或ecs-user具体以控制台显示为准。别拿着一个用户名反复试错先去看控制台的实例详情页。4.2 如果SSH连不上按这个顺序排查SSH连不上是新手最常遇到的第一个难题。这里给出一条系统性的排查链路先确认公网IP是否复制正确看控制台实例详情页。在本机执行ping 公网IP如果ping不通大概率是安全组没有放行ICMP或者IP写错。在本机执行telnet 公网IP 22如果端口不通重点检查安全组是否放行TCP 22。如果端口通但密码被拒检查是否开了大写锁、密码是否包含易混淆字符。如果确实忘了密码到控制台使用“重置实例密码”功能注意页面可能要求先停止实例。用一张小表概括现象可能原因处理方向ping不通安全组ICMP未放行/IP错误改安全组规则、核对IP22端口不通安全组未放行TCP 22/sshd未启动检查安全组、检查sshd密码被拒密码错误控制台重置密码一直卡在连接中公网IP错误或服务未就绪等待实例启动完成确认IP我记得自己第一次部署时就是卡在安全组这里前后花了半个多小时最后发现22端口规则并没有问题问题是Nginx的80端口没放行。所以开通安全组规则时一定要把HTTP/HTTPS一起检查到位。4.3 安装Nginx并启动服务登录成功后就可以开始部署Web服务了。Nginx是目前最常用的Web服务器之一轻量、稳定、配置灵活非常适合作为第一课。安装过程在Ubuntu上很简单apt update apt upgrade -y apt install nginx -y systemctl start nginx systemctl enable nginx systemctl status nginx第一句是把系统的软件源索引更新到最新并升级已有软件包第二句安装Nginx第三句启动服务第四句设置开机自启最后一句查看运行状态。如果状态显示active (running)说明服务已经运行。如果你选的系统是Rocky或CentOS命令对应改为yum update -y yum install nginx -y systemctl start nginx systemctl enable nginx安装完成后在浏览器地址栏输入http://公网IP如果能看到Nginx的默认欢迎页面说明整个链路已经打通安全组、80端口、Nginx服务三者都正常。这一步完成你离“部署网站”其实已经很近了。4.4 页面还是打不开从服务器内外两步定位如果浏览器始终打不开页面不要急着怀疑服务器坏了按下面两步操作能快速定位问题。第一步在服务器里面测本机执行curl http://localhost如果返回Nginx欢迎页的HTML内容说明Web服务本身正常问题出在外部访问链路也就是安全组或防火墙。第二步在本地电脑执行telnet 公网IP 80如果端口不通去安全组确认80和443是否放行如果端口通但浏览器还是打不开尝试换一个浏览器或者用无痕模式排除缓存问题。还有一种情况Nginx配置写错了。这时候执行nginx -t检查语法它会明确提示哪一行出了问题。改完配置后执行systemctl reload nginx加载新配置而不是直接重启因为reload可以在不中断服务的情况下应用修改这是运维里的常规习惯。5. 部署成功之后替换首页、养成运维习惯、规划下一步5.1 写自己的第一张网页看到Nginx默认欢迎页之后就该把它替换成自己的内容了。先找到网站根目录。在Ubuntu上默认的站点目录一般是/var/www/htmlNginx的默认站点配置文件在/etc/nginx/sites-available/里。要验证这一点在服务器中执行ls /var/www/html目录里如果有一个index.nginx-debian.html说明默认首页就在这个位置。接下来创建一个自己页面echo !DOCTYPE htmlhtmlheadtitle我的网站/title/headbodyh1我的服务器跑通了/h1/body/html /var/www/html/index.html刷新浏览器看到“我的服务器跑通了”这行大字说明你已经完成了从买服务器到发布网页的完整链路。这一步对建立信心很重要很多人在这个点才开始真正理解服务器、IP、端口、网站之间的关系。如果想改端口或站点的配置我告诉你Nginx的基本逻辑server块定义监听端口和站点根目录location块定义路径转发规则。以后要部署多站点、配置HTTPS都绕不开这套逻辑后面文章再展开。5.2 几个值得从第一天就养成的运维习惯服务器部署完真正的工作才开始。我总结几个实测有用的习惯建议装完系统就顺手做掉每隔一段时间执行一次apt update和apt upgrade把系统安全补丁打上。云平台控制台一般也有安全通告可以打开通知。不要用弱密码和默认密码SSH入口保持高强度口令或改用密钥登录。安全组遵循最小放行原则需要哪个端口就放行哪个端口不用的端口随手删除规则。打开云平台的监控告警重点关注CPU使用率、内存、磁盘IO设置阈值后收到短信或邮件通知。如果真的需要做长时间运行的应用考虑给服务器配置足够的内存和合理的Swap避免内存被占满后进程被系统杀掉。这里特别要提醒的是虽然有些云平台自带安全防护能力但底层的资源监控还是建议自己打开。我见过一个案例某网站深夜被脚本扫端口第二天云平台发来异常流量告警因为监控没开管理员差点没发现。告警不是用来吓人的它是在你还没发现问题时提前拉你一把。5.3 关于域名、HTTPS和后续路线到这里你已经能用公网IP浏览自己的网站了但清晰好记的地址、HTTPS加密、以及把网站和数据库正确组合起来还有几项工作。这些内容不适合全部塞进第一篇所以我打算在系列后面按顺序写域名购买、解析接入云服务器为网站启用HTTPS证书用Nginx配置多站点和反向代理安装数据库并让网站能写入数据服务器日常备份策略这里插一句国内服务器如果后续要绑定域名对外提供访问云平台通常会在控制台提供网站接入相关流程指引不同服务商的入口不太一样等到写域名篇时我再把具体操作记录完整呈现。回顾整个流程我最想说的一点是网站部署最重要的不是背命令而是理解“公网IP、端口、安全组、Web服务”这几层的关系。我当时的教训是买完服务器就一头扎进Nginx配置结果死活访问不了回头才发现安全组根本没放行80。如果你也是新手建议严格按照这篇文章的顺序走一遍先用IP访问跑通不要急着一口气把域名和数据库都装上。踩过一次坑之后这些概念会深深刻在脑子里。下一篇我会继续记录绑定域名和处理HTTPS证书的完整过程实际操作中涉及到的解析记录、证书申请、Nginx配置调整我都会逐个说明。如果你在这篇文章的任一步卡住可以先把错误提示原样记下来然后对照第4章的排查链路逐项检查大部分问题都出在安全组规则或者端口没有放行上。