1.
先登录腾讯云控制台,选择“云服务器 CVM”,在区域选择“香港”或“香港(Zhōngguó香港)”(根据控制台显示)。
建议选择:
- 操作系统:Ubuntu 22.04 LTS 或 CentOS 7/8。Ubuntu 对开发者友好。
- 实例规格:按业务量选择 CPU/内存,测试可选入门型;生产请选择带宽和网络优化的规格。
- 公网访问:勾选“分配公网 IP(EIP)”或后续绑定弹性公网IP,便于外网访问与域名解析。
2.
创建时选择登录方式:
- 推荐:SSH 密钥对(更安全)。在创建实例页面生成密钥对并下载私钥(.pem)。
- 或者设置密码,但要确保强密码并禁止 root 密码登录(后续配置)。
完成创建后记录公网 IP(或 EIP)。
3.
在控制台找到实例的“安全组”,添加入方向规则:
- SSH:TCP 22,源 IP 建议限制为办公/家里 IP,临时开放 0.0.0.0/0 用于测试后立即收紧。
- HTTP/HTTPS:TCP 80/443,允许 0.0.0.0/0。
注意:如果使用云防火墙(Cloud Firewall),同时在防火墙规则中开放对应端口。
4.
在本地打开终端:将下载的私钥 chmod 600,然后连接:
chmod 600 mykey.pem ssh -i mykey.pem ubuntu@<公网IP>
登录后执行:
更新系统、设置时区与主机名:
sudo apt update && sudo apt upgrade -y sudo timedatectl set-timezone Asia/Hong_Kong sudo hostnamectl set-hostname my-hk-server
创建非 root 用户并加入 sudo:
sudo adduser deployer sudo usermod -aG sudo deployer
5.
安装 Nginx 与常用工具:
sudo apt install -y nginx ufw git curl
启用 UFW 并允许必要端口:
sudo ufw allow OpenSSH sudo ufw allow 'Nginx Full' # 开放 80/443 sudo ufw enable
启动并设置开机自启:
sudo systemctl enable --now nginx
6.
在域名管理控制台添加 A 记录:
- 主机记录:@ 或 www;记录类型:A;记录值:实例公网 IP;生效后大约几分钟到 1 小时。
检查解析:
nslookup example.com dig +short example.com
若使用 CDN 或负载,按业务需求配置 CNAME 或负载均衡。
7.
安装 certbot 并自动为 nginx 获取证书:
sudo apt install -y certbot python3-certbot-nginx sudo certbot --nginx -d example.com -d www.example.com
Certbot 会自动修改 nginx 配置并设置定时续签。可手动测试续签:
sudo certbot renew --dry-run
若证书无法申请,检查 80 端口是否开放及域名是否已解析到当前 IP。
8.
问:我在本地使用私钥连接到香港实例时超时或拒绝连接,可能是什么问题?
答:常见原因包括:
- 安全组或云防火墙未开放 22 端口:到控制台开放入站规则;
- 私钥权限不正确或使用了错误的用户名(Ubuntu 默认用户是 ubuntu,CentOS 是 centos 或 root):确保 chmod 600 并使用正确用户;
- 实例没有分配公网 IP:检查是否分配 EIP 或绑定公网 IP。
9.
问:域名解析显示已生效,但访问超时或 certbot 报错 404/连接被拒绝,怎么办?
答:排查步骤:
- 确认 A 记录指向当前公网 IP:dig +short yourdomain;
- 确认 nginx 正在监听 80/443:sudo ss -tlpn | grep nginx;
- 确认安全组/防火墙允许 80/443;
- 暂时停止 nginx 以便 certbot 使用临时端口(若使用 standalone 模式);或使用 --nginx 模式由 certbot 自动验证。
10.
问:我希望在香港实例出现问题时能快速恢复和报警,有什么建议?
答:建议:
- 快照与镜像:在控制台启用定期快照策略或手动对数据盘进行快照;
- 弹性公网 IP 与负载均衡:生产环境使用负载均衡和多可用区部署提高可用性;
- 监控与告警:启用腾讯云云监控(CM)或第三方监控(Prometheus + Grafana),对 CPU、内存、磁盘、网络流量设置报警阈值;
- 自动化部署:使用 CI/CD(GitHub Actions / GitLab CI / Jenkins)结合脚本或 Ansible 做自动化发布;
- 日志与备份:将日志发送到云日志服务或 ELK,数据库使用定期备份并异地存储。