Linux云主机部署并不只是安装一个操作系统,还包括账号、网络、服务、证书、备份和验收。下面以一台运行 Debian 12 的云主机为例,给出一套可执行的上线清单。实际命令可能因云平台控制台、发行版和业务程序不同而调整。
一、确认配置与上线目标
先明确网站、API、定时任务还是内部工具。静态站点通常从 1 核 1GB 起步即可,带数据库的轻量业务更适合 2 核 4GB 或以上;并发量、日志规模和缓存需求较高时,应预留扩容空间。系统盘建议至少 40GB,并确认实例所在区域、带宽、IPv4 地址和快照能力。
二、创建实例并记录基础信息
在云平台创建实例时选择 Debian 12 镜像,设置密钥登录,并保存实例公网 IP、内网 IP、登录用户名和安全组规则。不要把私钥上传到公共网盘或提交到代码仓库。首次登录前,确认本地私钥权限仅当前用户可读。
三、更新系统并设置时区
- 通过 SSH 登录后执行 sudo apt update,再执行 sudo apt full-upgrade。
- 使用 sudo timedatectl set-timezone Asia/Shanghai 设置业务所需时区。
- 执行 sudo reboot 后重新连接,确认升级没有导致服务异常。
生产环境不宜在业务高峰直接升级内核。升级前应确认有可用快照,并为重启预留维护窗口。
四、创建日常管理账号
不要长期使用 root 直接处理应用文件。执行 sudo adduser deploy 创建管理账号,再用 sudo usermod -aG sudo deploy 授予必要的管理员权限。打开新的 SSH 会话,确认 deploy 可以执行 sudo 后,再考虑限制 root 远程登录。
五、加固 SSH 远程登录
编辑 /etc/ssh/sshd_config,将登录策略调整为密钥认证,并按需关闭密码登录和 root 远程登录。修改后先执行 sudo sshd -t 检查配置,再执行 sudo systemctl reload ssh。必须保留当前会话,使用另一窗口测试新账号,避免误配置后失去远程入口。

六、配置安全组与主机防火墙
云平台安全组负责实例外部入口,主机防火墙负责系统内部规则。只开放业务确实需要的端口:SSH 通常为 22,网页服务通常为 80 和 443,数据库端口不应直接暴露到公网。若使用 UFW,可依次执行 sudo ufw allow OpenSSH、sudo ufw allow 80/tcp、sudo ufw allow 443/tcp,确认规则无误后执行 sudo ufw enable。
七、安装并配置 Web 服务
以 Nginx 为例,执行 sudo apt install nginx,再执行 sudo systemctl enable --now nginx。将网站文件放入独立目录,例如 /var/www/site,并设置合理的文件属主和权限。配置站点时明确域名、静态文件目录、访问日志位置,以及是否需要反向代理到本机应用端口。
八、部署应用并管理进程
应用不要依赖 SSH 会话长期运行。可使用 systemd 创建服务单元,指定运行用户、工作目录、启动命令和环境变量,并设置失败自动重启。数据库密码、第三方密钥等敏感信息应放在权限受控的环境文件中,而不是写进公开仓库。部署后用 systemctl status 服务名 和 journalctl -u 服务名 检查启动结果。
九、绑定域名并启用 HTTPS
在 DNS 服务商处新增指向公网 IP 的 A 记录,等待解析生效后,用浏览器访问域名。确认 80 端口可达,再使用 Certbot 为 Nginx 申请证书,例如执行 sudo apt install certbot python3-certbot-nginx,随后按提示配置 HTTPS。证书申请依赖域名解析和外部访问条件,证书续期也应安排定期检查。
十、备份、监控与上线验收
- 备份应用配置、上传文件和数据库;数据库应使用对应的导出工具,而不是只复制正在写入的文件。
- 将备份保存到另一台主机或对象存储,并定期执行恢复演练,验证文件确实可用。
- 检查 df -h、free -h、uptime 和服务状态,重点关注磁盘接近满载、内存不足和进程反复重启。
- 从公网验证首页、登录、核心接口、静态资源、HTTPS 跳转和异常页面;再确认日志中没有持续的 4xx 或 5xx。
上线后可先观察一段低流量时段,再逐步放开访问。若应用无法启动,应优先查看服务日志、端口冲突、环境变量和文件权限,不要盲目反复重启。
常见问题
1. 云主机能登录,但网站打不开怎么办?
依次检查 Nginx 是否运行、云安全组和 UFW 是否放行 80/443、域名是否解析到正确 IP,以及站点配置是否通过语法检查。
2. SSH 是否必须更换默认端口?
更换端口只能减少部分自动扫描,不能替代密钥认证、限制来源 IP 和及时更新系统。安全策略应组合使用。
3. 应用应直接暴露公网端口吗?
通常不建议。让 Nginx 对外提供 80/443,再通过本机回环地址转发到应用端口,可以减少暴露面。
4. 多久检查一次备份?
至少按业务数据变化频率安排,并定期进行恢复测试。没有经过恢复验证的备份,不能视为完整的容灾方案。
完成以上十步后,Linux云主机部署才算从“能启动”进入“可维护、可验证、可恢复”的上线状态。


