1. 前置准备与账号权限
准备工作:确认你有域名管理权限(域名注册商或阿里云域名控制台)、阿里云账号并能登录香港地域的ECS控制台、能够为ECS分配弹性公网IP(EIP)。建议准备好服务器的SSH账号与sudo权限、域名的DNS管理权限(可能是DNSPod/阿里云解析或第三方)。
2. 在阿里云香港创建ECS并分配EIP
在阿里云控制台选择“ECS - 香港区域”,创建实例选择镜像(如Ubuntu 20.04/Alibaba Linux 2)、规格和带宽。创建完成后在“弹性公网IP(EIP)”页面申请一个EIP并绑定到该实例。记录下EIP地址(例如:1.2.3.4)。
3. 配置安全组与服务器防火墙
在ECS实例的安全组中放行80, 443, 22端口(可根据需要放行其它端口)。在服务器内配置防火墙:Ubuntu上可执行 sudo ufw allow 80/tcp; sudo ufw allow 443/tcp; sudo ufw allow 22/tcp 并启用 ufw enable。验证端口开放使用 sudo ss -tulnp 或 netstat -tuln。
4. 在域名解析控制台添加二级域名A记录
登录你的域名解析控制台(若在阿里云:域名 - 解析),添加记录:主机记录填写二级域名前缀,如 sub 或 www.sub; 记录类型选择 A;记录值填写刚才的EIP(1.2.3.4);TTL可以设为600(10分钟)。保存等待生效。若使用第三方DNS,步骤相同。
5. 使用CNAME或A记录的选择说明
如果你的EIP固定并直接指向服务器,使用A记录更直观。如果你计划使用CDN或负载层,通常将二级域名指向CDN给出的CNAME;在DNS上先创建指向EIP的A记录用于直接访问测试,之后替换为CDN CNAME。
6. DNS解析验证
在本地或服务器上运行命令:dig +short sub.example.com 或 nslookup sub.example.com,确认返回值为EIP(1.2.3.4)。若没有立即生效,查看TTL与解析生效时间,通常10分钟到24小时内。也可用在线工具如https://toolbox.googleapps.com/apps/dig/ 做全球解析检查。
7. 在服务器上安装与配置Nginx(或其他Web服务器)
在ECS上安装Nginx:Ubuntu 上 sudo apt update && sudo apt install -y nginx。创建站点配置文件 /etc/nginx/sites-available/sub.example.com(或 /etc/nginx/conf.d/)。示例 server 块:server_name sub.example.com; root /var/www/sub; listen 80; 配置好后 sudo nginx -t && sudo systemctl restart nginx。
8. 部署应用目录与文件权限
创建网站目录 sudo mkdir -p /var/www/sub && sudo chown -R $USER:www-data /var/www/sub && sudo chmod -R 755 /var/www/sub。放入测试 index.html 确认 Nginx 能正确返回页面。用 curl -I http://sub.example.com 或浏览器访问测试。
9. 申请与部署SSL证书(Let’s Encrypt)
推荐使用 Certbot 自动申请证书:sudo apt install certbot python3-certbot-nginx,然后 sudo certbot --nginx -d sub.example.com。若域名解析到EIP且80端口可访问,Certbot会自动验证并安装证书。若使用DNS验证(如申请泛域名),在DNS控制台添加Certbot或ACME提供的 TXT 记录后再继续。
10. 使用阿里云证书替代与HTTPS自动续期
你也可以在阿里云SSL证书服务申请证书,然后把证书私钥和公钥文件上传到服务器并在Nginx配置中指定 ssl_certificate 与 ssl_certificate_key。无论哪种方式,确保自动续期:Let’s Encrypt 可配置 cronjob 或 systemd timer,阿里云证书到期需在控制台续费或启用自动更新策略。
11. 可选:接入阿里云CDN与更改DNS为CNAME
如果需要加速与抗DDoS,阿里云CDN可作为前端:在CDN控制台新增域名 sub.example.com,设置源站为EIP或域名,配置回源Host为 sub.example.com。CDN启用后,它会给出一个 CNAME 值,在域名解析中将原来的A记录改为该CNAME(或新增一条CNAME),生效后访问将经过CDN加速。
12. 常见故障排查与命令汇总
常用命令:dig/nmlookup 验证DNS;curl -I 验证HTTP头;sudo nginx -t 检查配置;sudo systemctl status nginx 查看状态;sudo ss -tulnp 检查端口监听。若证书申请失败查看 /var/log/letsencrypt/ 日志,若DNS解析异常检查是否有错误记录或被缓存(使用 -a 8.8.8.8 指定DNS)。
13. 备份、回滚与安全建议
定期备份 Nginx 配置、站点代码与证书文件。变更DNS前记录原始记录,若接入CDN测试阶段建议降低TTL(如300秒)便于快速回滚。安全建议:关闭不必要端口、定期更新系统、安装Fail2ban、使用WAF或阿里云安全组与DDoS高防按需加固。
14. 优化与监控建议
上线后建议接入监控(阿里云云监控或Prometheus)监测流量、CPU、响应时间。启用Gzip/HTTP2、合理设置缓存头、配置访问日志与错误日志轮询。使用证书监控确保证书到期前自动续期或手动提醒。
15. 常见问题问答:二级域名解析未生效怎么办?
问:二级域名添加A记录后没有生效,我该怎么办? 答:首先用 dig +trace 或 dig @8.8.8.8 sub.example.com 检查是否是全网未生效或本地缓存问题;清除本地DNS缓存(Windows: ipconfig /flushdns,Linux: sudo systemd-resolve --flush-caches 或重启 nscd);确认域名解析确实指向EIP且TTL不高;若使用家宽DNS可尝试更换为8.8.8.8或1.1.1.1验证。
16. 常见问题问答:SSL证书申请失败常见原因?
问:在Certbot申请证书时报错“validation failed”,怎么办? 答:通常是 HTTP 验证无法访问 /.well-known/acme-challenge/,检查 Nginx 是否转发所有请求到应用导致 ACME challenge 被阻止,临时在站点配置中允许该路径直接返回文件;若使用DNS验证,确认TXT记录已经在权威DNS生效并等待TTL后再继续验证。
17. 常见问题问答:为何要把二级域名与阿里云香港服务器配合使用?
问:我为什么要把子域名指向阿里云香港ECS,有什么好处? 答:把二级域名直接指向香港ECS有利于面向香港/东南亚用户的低延迟访问,同时便于利用阿里云的带宽和安全产品(如CDN、WAF、DDoS高防);此外可灵活使用EIP和安全组精细化控制访问策略,便于后续扩展与负载均衡。
来源:使用二级域名与阿里云香港服务器域名dns协同部署案例