1.
准备与接入:选择主机与初始登录
说明:先确认葵芳VPS供应商、镜像(Ubuntu 22.04推荐)与公网IP。
操作步骤:1) 在面板创建实例并记录IP与root密码;2) 本地执行 ssh root@你的IP,首次接受指纹;3) 更新系统:apt update && apt upgrade -y;4) 创建运维用户:adduser devops && usermod -aG sudo devops,并设置SSH密钥(ssh-keygen 在本地,复制到~/.ssh/authorized_keys)。
2.
基础安全:SSH、防火墙与用户权限
说明:限制登录与开放必要端口(22/80/443/API端口)。
操作步骤:1) 编辑 /etc/ssh/sshd_config 禁用密码登录:PasswordAuthentication no;2) 重启ssh:systemctl restart sshd;3) 使用UFW或iptables:ufw allow 22; ufw allow 80; ufw allow 443; ufw allow 8443(示例API端口);ufw enable;4) 配置fail2ban防暴力破解:apt install fail2ban,并启用默认配置。
3.
部署运行时:安装Docker与Docker Compose
说明:用容器化运行API服务便于管理与回滚。
操作步骤:1) 安装Docker官方脚本:curl -fsSL https://get.docker.com | sh;2) 安装docker-compose:apt install -y python3-pip && pip3 install docker-compose;3) 将devops加入docker组:usermod -aG docker devops;4) 测试:docker run --rm hello-world。
4.
API 管理:以Nginx作为反向代理与证书
说明:使用Nginx做反代并配置Let's Encrypt自动签发证书。
操作步骤:1) 在Docker中运行nginx或直接apt install nginx;2) 配置站点 /etc/nginx/sites-available/api.conf,示例:server_name api.example.com; location / { proxy_pass http://127.0.0.1:8000; proxy_set_header Host $host; };3) 安装certbot并申请证书:apt install certbot python3-certbot-nginx && certbot --nginx -d api.example.com;4) 验证HTTPS与重定向。
5.
自动化部署:使用Docker Compose与版本控制
说明:用docker-compose.yml管理多服务,结合Git实现deploy流程。
操作步骤:1) 在仓库添加 docker-compose.yml(web、db、redis等);2) 在VPS上克隆仓库:git clone git@github.com:org/repo.git && cd repo;3) 启动:docker-compose pull && docker-compose up -d;4) 更新流程:git pull && docker-compose up -d --build。
6.
配置管理与可复现:使用Ansible剧本
说明:用Ansible管理多台葵芳VPS、环境变量与初始化脚本。
操作步骤:1) 本地安装ansible;2) 编写inventory([kfa] ip ansible_user=devops);3) playbook示例:- hosts: all tasks: - name: update apt apt: upgrade: dist=yes - name: deploy repo git: repo=... dest=/opt/app;4) 执行:ansible-playbook -i inventory site.yml。
7.
基础CI/CD:用GitHub Actions自动化构建部署
说明:Push触发构建、镜像发布与远程部署。
操作步骤:1) 在repo添加 .github/workflows/deploy.yml,步骤包含 checkout、docker build、push 到私有registry;2) 使用ssh action或自建runner在VPS执行远程拉取并docker-compose up -d;3) 在GitHub添加私钥为Secret(SSH_PRIVATE_KEY、REGISTRY_TOKEN等);4) 验证触发与回滚策略。
8.
监控与日志:Prometheus、Grafana与集中式日志
说明:监控API健康、响应时间与主机指标,日志集中便于排查。
操作步骤:1) 在Docker Compose添加prometheus、node_exporter与grafana;2) 配置prometheus抓取targets;3) 部署ELK或EFK栈(filebeat -> elasticsearch -> kibana)收集容器日志;4) 设置告警规则(Prometheus Alertmanager,邮件/Slack告警)。
9.
备份与灾备:数据库与镜像快照策略
说明:制定定期备份与快速恢复流程。
操作步骤:1) 数据库使用逻辑备份脚本(mysqldump 或 pg_dump),并上传至对象存储(S3/MinIO);2) 每日快照VPS镜像或使用LVM快照;3) 编写恢复文档并在非生产环境演练;4) 自动化备份可用cron或Ansible定时任务。
10.
常见问题问答 — 问:如何确保API部署零停机?
问:如何确保API部署零停机?
答:采用蓝绿或滚动部署:在docker-compose或Kubernetes中先启动新版本并通过负载均衡切换流量,使用健康检查与连接 draining,配合短连接或session外部化(如Redis)减少中断。
11.
常见问题问答 — 问:葵芳VPS网络延迟对API有影响吗?
问:葵芳VPS网络延迟对API有影响吗?
答:香港节点对亚洲客户延迟低,但需测量真实RTT与带宽;对外调用第三方API可做本地缓存、批量请求与超时控制,使用CDN缓存静态资源以降低延迟影响。
12.
常见问题问答 — 问:如何快速恢复被攻破的VPS?
问:如何快速恢复被攻破的VPS?
答:立即断网或更换安全组,启动隔离环境;从最近可信备份恢复到新实例,重置密钥与密码;复查日志找出入侵点并补丁漏洞,之后在安全环境下恢复服务并通知相关方。
来源:开发者视角解析 香港葵芳vps API管理与自动化部署方法