文章目录
Typecho使用阿里云CDN保护网站真实IP地址的完整指南
🌐 我的个人网站:乐乐主题创作室
背景与问题分析
在互联网环境中,网站直接暴露真实服务器IP地址会带来多种安全隐患,包括但不限于:
- DDoS攻击风险:攻击者可以直接针对源站IP发起流量攻击
- 扫描探测风险:黑客会定期扫描互联网IP段寻找漏洞
- 源站定位风险:一旦CDN被绕过,服务器将直接暴露
对于使用Typecho这类PHP博客系统的站长来说,保护源站IP尤为重要,因为PHP应用通常部署在性能有限的服务器上,难以承受大规模攻击。
技术选型与方案设计
阿里云CDN作为国内领先的内容分发网络服务,提供了完善的源站保护方案。我们将采用以下架构:
用户请求 -> 阿里云CDN边缘节点 -> (仅限CDN回源IP段访问) -> Typecho源站
关键实现要点:
- CDN基础配置:域名解析、缓存策略设置
- 源站防护:通过防火墙限制仅CDN回源IP可访问
- Typecho特殊处理:适应CDN环境下的配置调整
详细实施步骤
第一步:阿里云CDN基础配置
- 登录阿里云控制台,进入CDN服务
- 添加加速域名,选择"图片小文件"场景(适合博客)
- 在"回源配置"中设置源站信息:
# 推荐使用源站域名而非IP,这样即使IP变更也不影响
origin.example.com 源站域名
80 回源端口
- 配置缓存策略(建议配置):
/* 全部文件 - 缓存30天
.php 动态文件 - 缓存0秒
/wp-admin/* 后台路径 - 缓存0秒
第二步:DNS解析设置
将您的博客域名解析从A记录(指向IP)改为CNAME记录,指向阿里云提供的CDN域名:
记录类型: CNAME
主机记录: @ 或 www
记录值: example.com.w.kunlunsl.com
TTL: 600
第三步:源站服务器防护配置
Nginx服务器配置
# 只允许阿里云CDN回源IP段访问
location / {
allow 47.99.0.0/16;
allow 47.98.0.0/16;
allow 120.55.0.0/16;
# 其他阿里云CDNIP段...参考阿里云官方文档更新
deny all;
# Typecho原始配置
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php$1 last;
}
}
防火墙配置(以Ubuntu为例)
# 清空现有规则
sudo iptables -F
# 允许SSH等必要端口
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# 允许阿里云CDN回源IP访问80端口
sudo iptables -A INPUT -p tcp --dport 80 -s 47.99.0.0/16 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 80 -s 47.98.0.0/16 -j ACCEPT
# 拒绝其他所有HTTP访问
sudo iptables -A INPUT -p tcp --dport 80 -j DROP
# 保存规则
sudo iptables-save > /etc/iptables.rules
第四步:Typecho配置调整
修改Typecho的config.inc.php
文件:
/** 识别CDN的