1. 预备工作:确认需求与选择供应商
- 明确用途:网站/API、电子商务、文件存储、内部系统。估算并发、带宽、存储、读写IO。
- 选择香港机房:阿里云香港、腾讯云香港、AWS 香港、Vultr/Hetzner等。对比网络延迟到主要客户群(中国大陆/东南亚)、价格、带宽包和入站流量计费。
- 准备材料:企业账号/个人实名信息、支付方式(信用卡/支付宝/微信)、联系信息。
2. 购买实例:配置与计费模型
- 推荐配置(中小企业常见):
- Web/轻量:2 vCPU、4GB 内存、40–80GB SSD;高并发/数据库:4 vCPU、8–16GB 内存、NVMe SSD。
- 计费:按量计费便于试验,包年包月更省钱。注意带宽峰值和出流量计费规则。
- 选择镜像:推荐 CentOS 7/8、Ubuntu 20.04/22.04。生产推荐 LTS 版本。
3. 网络与安全组配置(购买前/后马上做)
- 新建安全组(防火墙规则):默认关闭所有入站,打开必需端口:
- SSH 22(建议改端口),HTTP 80,HTTPS 443,数据库端口只允许内网或跳板IP。
- 弹性公网IP:绑定主机,考虑CDN或负载均衡器架构。开启DDoS基本防护(如厂商提供)。
4. SSH 密钥与初次登录
- 本地生成密钥(Linux/macOS/WSL):
- ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
- 在控制台贴入公钥或上传。首次登录:
- ssh -i ~/.ssh/id_rsa ubuntu@<公网IP> 或 root@<公网IP>
- 建议:禁用密码登录(后续步骤),创建非root用户并加入sudo组。
5. 系统初始化(以Ubuntu为例)
- 更新系统:
- sudo apt update && sudo apt upgrade -y
- 创建用户与配置SSH:
- sudo adduser deployer
- sudo usermod -aG sudo deployer
- 将~/.ssh/authorized_keys复制到 /home/deployer/.ssh/ 并设置权限(700/600)。
- 禁用root密码登录:编辑 /etc/ssh/sshd_config,PermitRootLogin no,PasswordAuthentication no,然后 sudo systemctl restart sshd。
6. 基础安全与防火墙配置
- 安装 UFW(Ubuntu):
- sudo apt install ufw -y
- sudo ufw default deny incoming
- sudo ufw default allow outgoing
- sudo ufw allow
/tcp
- sudo ufw allow 80/tcp
- sudo ufw allow 443/tcp
- sudo ufw enable
- 安装 fail2ban 防暴力破解:sudo apt install fail2ban -y,配置 /etc/fail2ban/jail.local。
7. 磁盘与快照策略
- 扩容与挂载:如果使用附加云盘,按厂商控制台分区、格式化并挂载:
- sudo parted /dev/vdb mklabel gpt
- sudo mkfs.ext4 /dev/vdb1
- sudo mkdir /data && sudo mount /dev/vdb1 /data
- 编辑 /etc/fstab 保持重启挂载。
- 快照/备份:设置自动快照(每日/每周)并测试恢复。
8. 部署 Web 服务(Nginx + PHP 示例)
- 安装 Nginx:
- sudo apt install nginx -y
- sudo systemctl enable --now nginx
- 安装 PHP-FPM(如 PHP 8.1):
- sudo apt install php8.1-fpm php8.1-mysql -y
- Nginx 虚拟主机配置示例(/etc/nginx/sites-available/example):
- server { listen 80; server_name example.com; root /var/www/example; index index.php index.html; location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php8.1-fpm.sock; } }
- 测试并重载:sudo nginx -t && sudo systemctl reload nginx。
9. HTTPS:Let's Encrypt 自动签发
- 安装 Certbot:
- sudo apt install certbot python3-certbot-nginx -y
- 自动签发并配置:
- sudo certbot --nginx -d example.com -d www.example.com
- 配置自动续期(系统定时任务已安装),验证:sudo certbot renew --dry-run。
10. 数据库部署与安全
- 以 MySQL 为例:sudo apt install mysql-server -y,运行 sudo mysql_secure_installation 并按提示操作(关闭匿名、删除测试库、设置强密码)。
- 仅允许内部访问:编辑 /etc/mysql/mysql.conf.d/mysqld.cnf,bind-address = 127.0.0.1 或内网IP;为远程连接使用跳板机或设置安全组白名单。
11. 性能优化 — 内核与 TCP 调优
- 临时调优示例:
- sudo sysctl -w net.core.somaxconn=65535
- sudo sysctl -w net.ipv4.tcp_tw_reuse=1
- 永久写入 /etc/sysctl.conf:
- net.core.somaxconn = 65535
- net.ipv4.tcp_fin_timeout = 15
- vm.swappiness = 10
- 文件描述符提升(nginx/php-fpm):
- 编辑 /etc/security/limits.conf 添加 * soft nofile 65535\n* hard nofile 65535,并在 systemd 服务文件中设置 LimitNOFILE=65535。
12. CDN、负载均衡与静态资源加速
- 使用 CDN(Cloudflare、腾讯云CDN、阿里CDN)缓存静态资源,减少回源带宽与延迟。
- 对于高可用,使用云厂商的负载均衡(CLB/ALB)并配置健康检查,后端使用多个实例并存放会话在 Redis 或使用 sticky sessions 谨慎。
13. 监控、日志与告警
- 部署监控:Prometheus + Grafana,或使用云厂商监控服务。关键指标:CPU、内存、磁盘IO、网络IO、响应时间。
- 日志集中:Filebeat/Fluentd + Elasticsearch 或云日志服务,设置错误级别告警与关键阈值告警(磁盘、CPU、连接数)。
14. 备份与应急恢复
- 数据库:使用 mysqldump/Percona xtrabackup 每日备份并异地存储(对象存储)。示例脚本:
- mysqldump -u root -p'密码' --single-transaction --databases mydb | gzip > /backup/mydb-$(date +%F).sql.gz
- 文件: rsync 或工具上传到对象存储(OSS/S3),并定期验证恢复流程。
15. 成本控制与优化建议
- 评估使用预留实例/包年、关闭不必要实例、使用自动扩缩容;对小业务使用轻量应用服务器减少运维复杂度。监控带宽与出流量费用,开启 CDN 后可明显降低出流量成本。
16. 常见故障排查与命令快速参考
- 无法SSH:检查安全组、实例是否启动、端口是否被更改、云控制台串口日志。
- Nginx 502:查看 /var/log/nginx/error.log 与 php-fpm 日志;确认 php-fpm 状态 sudo systemctl status php8.1-fpm。
- 高IO:iotop、iostat 分析,查看是否备份或日志过度写入,考虑添加更快磁盘或调整备份时间窗。
17. 小结与逐步运行检查表
- 购买→绑定公网IP→SSH密钥→系统更新→用户与SSH强化→防火墙&fail2ban→挂载磁盘→部署应用→HTTPS→监控和备份→性能调优→成本优化。建议每一步完成后写入运维文档并做恢复演练。
18. 问:中小企业在香港云服务器部署最容易忽视的安全步骤是什么?
答:最常被忽视的是默认开放太多端口、未禁用 root 密码登录及未配置密钥登录、没有设置 fail2ban/安全组白名单以及未启用自动安全更新和备份策略。确保最小权限原则、使用 SSH 密钥、仅开放必要端口并启用入侵检测与备份。
19. 问:如何在有限预算下保证性能与稳定性?
答:优先使用 CDN 缓存静态资源以降低带宽压力,采用水平扩展和自动扩容避免过度预配,使用云厂商监控及时调优,选择性启用预留实例或包月节省长期成本。对数据库使用读写分离或托管数据库服务减少运维负担。
20. 问:部署后如何验证配置与自动化运维是否到位?
答:建立检查清单并定期执行:SSH登录测试、HTTPS证书与续期测试、备份恢复演练、负载测试(ab/jMeter)、监控告警触发演练、安全扫描(如漏洞/端口扫描)。使用基础自动化脚本或 Ansible/Chef 将常见操作自动化。
来源:中小型企业如何快速完成香港云服务器部署与配置优化