阿里云实名关联账号 阿里云服务器设置二级域名
你是不是也经历过——花89块抢了台2核4G的阿里云轻量应用服务器,兴冲冲买了个yourname.com,结果想给博客配个blog.yourname.com,一查文档,满屏「CNAME」「A记录」「反向代理」「SSL证书」……头开始嗡嗡响,像被三只云小猫同时踩键盘?别慌,今天不讲理论,不甩术语,就当咱俩蹲在服务器终端前嗑瓜子,我一句一句带你把二级域名配出来,连报错截图我都给你预演好了。
第一步:先搞清「谁管谁」——域名和服务器不是一家公司
很多同学卡在第一步,是因为默认以为「我在阿里云买的服务器,域名也在阿里云注册的,那它俩天生就该手拉手」。错!域名是身份证,服务器是房子,阿里云只是偶尔兼任派出所(域名注册)和物业(云服务器),但它们之间没自动牵红线。你得自己填「住址证明」——也就是DNS解析记录。
打开阿里云域名控制台 → 找到你的域名 → 点「解析设置」→ 新建记录:
- 记录类型:选
A(别信某些教程说必须用CNAME,除非你开了CDN;纯服务器就用A,稳) - 主机名:填
blog(不是blog.yourname.com!这里只写前缀) - 记录值:填你服务器的公网IP(不是内网IP!不是192.168.x.x!去ECS控制台看「实例详情」里的「公网IPv4地址」)
- TTL:300秒(改完5分钟内生效,别等一小时)
保存后,打开终端敲:ping blog.yourname.com。如果看到「正在Ping xxx.xxx.xxx.xxx」且有响应,恭喜,DNS这关过了。如果提示「未知主机」,检查:①是否拼错主机名;②IP是否复制漏了一位;③域名是否实名认证完成(没认证的域名解析不生效)。
第二步:服务器上开个「门牌号」——Nginx配虚拟主机
阿里云实名关联账号 DNS把访客引到了你家楼下,但你家大门紧闭,还挂着「请勿打扰」的牌子。这时候,Nginx就是那个穿围裙、戴工牌、开门迎客的管家。
假设你用的是Ubuntu/Debian(CentOS同理,命令微调):
# 检查Nginx是否在跑
sudo systemctl status nginx
# 如果没装,速装(一行搞定)
sudo apt update && sudo apt install nginx -y
# 启动并开机自启
sudo systemctl enable nginx && sudo systemctl start nginx
接着,创建专属配置文件:
sudo nano /etc/nginx/conf.d/blog.yourname.com.conf
粘贴以下内容(⚠️注意替换yourname.com和/var/www/blog路径):
server {
listen 80;
server_name blog.yourname.com;
root /var/www/blog;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
}
然后建个测试页验证:
sudo mkdir -p /var/www/blog
echo "<h1>🎉 二级域名已点亮!</h1><p>这是 blog.yourname.com 的首页</p>" | sudo tee /var/www/blog/index.html
最后,重载Nginx:
sudo nginx -t && sudo systemctl reload nginx
现在浏览器打开 http://blog.yourname.com,如果看到那行庆祝文字,说明服务器+Web服务双通!如果打不开,执行sudo ss -tuln | grep :80看80端口是否被监听;再查安全组——去阿里云ECS控制台 → 实例 → 「安全组」→ 确保入方向放行了TCP 80端口(别只开22!)。
第三步:加把锁——免费HTTPS,Let's Encrypt一键搞定
HTTP就像寄明信片,谁都能偷看。HTTPS是带加密信封的快递。现在Chrome直接给HTTP网站标「不安全」,逼你升级。好在Certbot让这事变得比泡面还简单。
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d blog.yourname.com
全程按回车,它会自动修改Nginx配置、申请证书、配置自动续期。完成后,访问https://blog.yourname.com,小锁图标亮起,成就感爆表!
顺手加个「HTTP强制跳HTTPS」,防用户手贱输错:
sudo nano /etc/nginx/conf.d/blog.yourname.com.conf
把原来的server { listen 80; ... }块,改成:
server {
listen 80;
server_name blog.yourname.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name blog.yourname.com;
ssl_certificate /etc/letsencrypt/live/blog.yourname.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/blog.yourname.com/privkey.pem;
# 下面是推荐的安全头,复制粘贴即可
add_header X-Frame-Options "DENY" always;
add_header X-XSS-Protection "1; mode=block" always;
add_header X-Content-Type-Options "nosniff" always;
root /var/www/blog;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
再sudo nginx -t && sudo systemctl reload nginx,大功告成。
常见翻车现场 & 救命口诀
- 「页面空白,但ping通」→ 八成是Nginx配置语法错误,执行
sudo nginx -t看红字报错;或sudo tail -f /var/log/nginx/error.log盯实时日志。 - 「HTTPS证书显示「不安全」」→ 别慌,可能是证书链不全。Certbot默认已处理,但若手动配置过,请确认
ssl_certificate指向fullchain.pem(不是cert.pem)。 - 「备案问题」→ 阿里云国内服务器,
.cn域名必须备案,但.com二级域名无需单独备案!只要主域名备过就行。 - 「CDN开着却配不了」→ 关掉CDN!或者把DNS解析类型从A改成CNAME,并填CDN提供的接入域名(此时服务器IP不能暴露)。
最后送你一句真经
配置二级域名,本质就三件事:① DNS指路(A记录),② 服务器接客(Nginx虚拟主机),③ 门面升级(HTTPS)。中间所有报错,无非是这三环里某一环松了螺丝。遇到问题,别百度「怎么解决XXX错误」,直接问自己:「我刚改的是哪一环?它现在通不通?」——顺着这个思路,99%的问题,五分钟内能自己揪出来。
对了,如果你配完发现www.blog.yourname.com也能打开……那是Nginx默认兜底行为,属于彩蛋,不是bug。想关掉?加个server_name精确匹配就行。但建议留着,反正也不费电 😏

