1.
1.1 选择云厂商和区域:建议选择AWS/Google Cloud/Hetzner/阿里海外节点,区域选美国东/西(靠近客户)。
1.2 选择规格:根据业务选择t3.small/t3.medium或对应vCPU/内存,考虑后续横向扩展,不先选过大。
2.
2.1 创建实例:选择镜像(Ubuntu 22.04),设置SSH密钥对,选择安全组/防火墙只放行22、80、443、应用端口。
2.2 分配弹性IP并绑定,配置DNS(A记录指向弹性IP);示例命令:ssh -i key.pem ubuntu@your-ip。
3.
3.1 系统更新与用户:sudo apt update && sudo apt upgrade -y;创建非root用户并加入sudo。
3.2 防火墙与SSH硬化:sudo ufw allow OpenSSH; sudo ufw allow 80; sudo ufw allow 443; sudo ufw enable。修改 /etc/ssh/sshd_config 禁止密码登录,重启ssh:sudo systemctl restart sshd。
4.
4.1 安装软件:sudo apt install nginx mysql-server php-fpm -y;启动并启用服务:sudo systemctl enable --now nginx mysql php7.4-fpm。
4.2 配置Nginx站点:在 /etc/nginx/sites-available/ 创建server块,设置root、index、proxy或fastcgi_pass,测试配置 sudo nginx -t 并重载 sudo systemctl reload nginx。
4.3 SSL证书:安装certbot并申请证书:sudo apt install certbot python3-certbot-nginx -y;sudo certbot --nginx -d example.com。
5.
5.1 Nginx优化:启用gzip,增加worker_processes auto,worker_connections 1024,开启sendfile、tcp_nopush、tcp_nodelay缓存。
5.2 应用层缓存:部署Redis或Memcached:sudo apt install redis-server -y;将会话或页面缓存接入应用。使用CDN(Cloudflare)缓存静态资源并启用HTTP/2。
5.3 数据库优化:为MySQL设置合适的innodb_buffer_pool_size(约内存的50-70%),启用慢查询日志并根据EXPLAIN优化索引。
6.
6.1 监控:部署Prometheus + node_exporter 或使用云监控(CloudWatch/GCP Monitoring),设置CPU/内存/磁盘/响应时间告警。
6.2 自动扩缩:在流量高峰时使用负载均衡器(ELB/Cloud Load Balancer)+托管实例组,并配置伸缩策略(CPU或请求数阈值)。
6.3 备份与快照:定期自动化快照数据库与磁盘,使用mysqldump导出并同步到对象存储(S3/OSS),测试恢复流程。
7.
7.1 成本优化:按需观察使用率,甄别可用预留实例或节约计划;定期做rightsizing(调整实例规格)。
7.2 日常运维:建立变更记录、部署流水线(CI/CD),使用Ansible或Terraform管理基础设施以保证可复现。
8.
问:最近上线后响应慢,怎么排查?
答:先查看监控(CPU、IO、网络),抓取慢查询,使用top/htop看进程,检查Nginx访问日志与后端应用日志,若DB为瓶颈增加连接池或读写分离,若CPU满载考虑横向扩容。
9.
问:意外删除数据,如何快速恢复?
答:依赖备份策略:使用最近的mysql dump或逻辑备份恢复到新实例,或使用快照回滚磁盘;建议定期演练恢复步骤并保留异地备份。
10.
问:预算有限,如何提升可用性和抗灾能力?
答:采用多AZ部署(或至少跨机房复制)、使用托管数据库或云负载均衡,设置健康检查和自动重启策略,同时保证定期备份与故障演练,优先把关键服务做冗余。