搭建一个简易的全球CDN/反代缓存节点来给网站加速
本人管理或运营的几个网站的主服务器都放在国外, 如果从国内直接访问的速度会比较慢, 而且感觉就算套了CF或阿里云等CDN后, 在国内的效果还是不够理想, 特别是上传速度挺慢的. 后来使用Nginx和fikker配合CloudXNS智能DNS搭建了一套简易的CDN, 现在全球的用户不管是上传, 还是浏览速度都还不错. 最近老是看到论坛有人在讨论反向代理和CDN的问题, 我也来说说我的一些经验和感受吧.
首先确定你的主要用户群是在哪里?
如果主要用户来自中国, 那么建议节点服务器选择香港/台湾/新加坡. 节点服务器一定要离用户进一点, 最好ping值在80以内, 阿里云的香港或者新加坡是一个很好选择. 主站点服务器可以放在美国, 不过主服务器到节点服务器一定要稳定, 但ping值不需要那么好, 一般200甚至250以内都没有问题.
如果你的用户来自欧美, 那么就非常好解决了, 主站随便放在欧洲或者美国东部, 节点放在另外一边都可以, 这样两边的速度都非常快.
建议的解决方案:
主站源服务器放在美国西岸, 反代节点位于香港和法国, 这样基本上照顾到了亚洲/北美和欧洲地区的用户.
节点服务器不需要多好的配置, 一般建议使用KVM构架的VPS, 配置在1核, 512MB的内存, 硬盘10G或以上就好了.
动态网站解决方案(论坛、博客、等动态网页)
1, 如果您的网站是动态网站, 那么建议使用fikker, 这套程序的免费版本只是比收费版本少了一个缓存效果, 通过测试,我感觉反代效果比Nginx好, 另外系统选择CentOS 6 x64, 因为我发现在CentOS 7上上传有Bug. 若系统里再安装一个锐速效果会更好.
fikker的搭建方法很简单,请直接查看官方官方:
https://www.fikker.com/help/install-fikker-linux-step-by-step.html
yum -y install wget
删除必要服务
yum remove httpd nginx -y
wget -c https://www.fikker.com/dl/fikkerd-3.7.7-linux-x86-64.tar.gz
tar zxvf fikkerd-3.7.7-linux-x86-64.tar.gz
cd fikkerd-3.7.7-linux-x86-64
./fikkerd.sh install && ./fikkerd.sh start
管理界面
http://your-ip:6780/
管理员/监控员的初始密码:123456, 登录后建议首先修改密码
如果无法登陆, 请检查防火墙设置
iptables防火墙(Centos 6)
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
iptables -I INPUT -p tcp --dport 443 -j ACCEPT
iptables -I INPUT -p tcp --dport 6780 -j ACCEPT
service iptables save
service iptables restart
firewall防火墙(CentOS 7)
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=443/tcp --permanent
firewall-cmd --zone=public --add-port=6780/tcp --permanent
firewall-cmd --reload
另外还可以根据自己的要求去设置一些缓存项目, 如果您对这个不熟悉, 那么使用默认的设置就好了
其实Fikker还有很多功能, 比如页面缓存、实时监控、流量统计、转向管理、防CC攻击等等, 但是免费版本不包括页面缓存, 如果您需要缓存这个功能, 那么建议购买他们的全功能商业版本, 价格是399元/年.
https://www.fikker.com/price.htm
停止服务,在安装目录下面运行:
./fikkerd.sh stop
删除服务,在安装目录下面运行:
./fikkerd.sh uninstall
注册服务,在安装目录下面运行:
./fikkerd.sh install
通过上面的方法, 您可以在全球架设多个节点, 如果您的节点比较多, 那么还可以通过他们的主控系统来集中化管理
静态网站解决方案 (如图片、html网页、小文件)
2, 如果您的网站绝大部分是静态文件(如图片), 那么建议使用宝塔面板, 配合着Nginx反向代理缓存还是非常好用的. 这样不仅节约原服务器的流量, 还可以提高用户的浏览速度, 当然了, 系统建议还是加上BBR或者锐速, 那样效果好很多.
宝塔反代缓存的设置方法可以参考这里:
https://www.openos.org/post/107/
智能DNS解析
配置好节点服务器后再去智能DNS里面根据自己的要求解析好域名, 这样基本上一个建议的CDN/反代加速系统就搭建好了.
DNS服务商一般推荐CloudXNS和DNSPOD.
测试效果
另外本站 https://www.openos.org/ 的主服务器放在加拿大OVH, 中国用户访问解析到阿里云新加坡节点上, 大家可以体验一下实际使用效果. (本垃圾小站, 没有必要架设全球节点)
本网站所有内容版权没有, 请随意使用, 欢迎修改或转载, 无需署名, 也无需保留本链接.
请问一下博主,本文图片中的是用什么软件/网站测试的?谢谢!
PING测试
https://www.ipip.net/ping.php
那样子的话,怎么抗ddos 呢,有没有便宜点的抗打方案
后台源服务器放在OVH, 前面挂反代, 如果被DDOS自动切换到CloudFlare.
请问如何设置DDS自动切换到CF?
去一些CF合作面板(如:https://su.geekzu.org )添加域名, 然后ping一下提供的CNAME获取IP地址, 然后进CloudXNS或者DNSPOD里面设置A记录故障自动切换就好了.
楼主方便私信个qq给我吗, 我的 174747 9 6 5 4
刚建立了一个电报群 https://t.me/openos
CloudXNS或者DNSPOD(都需要实名认证),还有其他的选择吗?
博主,OVH法国和加拿大机房本身就抗D的,感觉没必要切换到CF,况且CF免费版的难受也不抗D。
另外,本站用的OVH配置如何,什么价格呢?抗D的vps求推荐。
免费版的CF也抗D的, 多一层防护没什么不好的, 如果觉得CF不行, 那么在前端再加个抗DDoS的VPS也行(比如OVH新加坡的VPS), 没有必要把后端的主服务器直接给别人吧. 另外我这个后端是OVH的独立服务器.
博主应该弄个图片灯箱,文章内看不清 (手机),然后打开外链还是不清楚,还得查看原图片直链
改模板好麻烦啊......
反代对于节点服务器的流量,是不是等于双倍消耗?
是的, 但是很多服务器只计算出口流量.
文章已转载,这个搭建了一个。效果还是有点可以。
感谢博主的教程,学习了很多。
现在有几个问题想请教博主:
①反向代理就是因为OVH的站点A打开太慢了,所以要用个访问速度较好的VPS(站点B)作为前端打开网页,是吗?
②如果是这样的话,为什么不直接用这个访问速度较好的VPS(站点B)建站呢?
③如果因为这个速度较好的VPS(站点B)不抗D,反代的话依然可能会打到生活不能自理啊?
比如直接打瘫痪了,那么OVH的站点A不是仍会无法访问或者访问很慢吗?
萌新求解,非常感谢!
反代有个很重要的原因就是为了保护源站点不被泄露, 就算反代节点被攻击, 那么节点还可以随时切换, 但是如果源站点被攻击,那么数据可不是那么方便切换了.
明白了,就是说可以多建几个节点,一来分担主站的压力,二来更好的保护主站不容易下线。
另外,这样反代之后,主站上安装的统计代码比如google和百度的统计,还能正常统计到每个访客信息吗?
谢谢!
楼主你好,你这种CDN方式,到头来还是需要备案的吧?
节点如果在国内当然要备案了
…真是够折腾的,我在家搭建的1u都没那么麻烦_(´□`」 ∠)_,直接挂cf,扫描亚洲节点的ip段,dns里分线路解析