网站一直用的国外某家CDN提供的加速服务,可是最近发现某些地区的某些节点貌似也被墙了。
并且最近国内出口是卡的一塌糊涂,他亲爹都不认识了,小道消息说用了某信的国际网络优化业务,速度超快。
好吧不管原因如何,总要活着不是。
现在国外的VPS这么便宜,而且我找了几台国内ping和下载速度都可以满足基本需要。那么问题来了,如何在不迁移数据的情况下提升访问体验呢?
我个人的解决方案是自建”CDN“,这里要打个引号了,虽然CDN的技术其实说白了就是反向代理,但是很多时候不能说白不是?
进入正题!
准备工作:首先你要有CDN节点,那么就是购买各种低价低配年付的VPS了。这里我就不推荐了,赵荣的博客小夜的博客比比皆是。标配是512M+20GSSD+不等的流量限制。
其实足够了,主要看网络如何,反代对配置要求不是那么严谨,当然也相对你流量来说的。
节点我使用的是军哥的LNMP环境。
上代码:本文件位于/usr/local/nginx/conf/vhost/test.conf。
server {
listen 80;
server_name www.526net.com;
location /
{
proxy_pass http://www.526net.com/;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
我这里是自己反代自己,可能有同学就有疑问了,很简单,只需要修改节点的HOST指向你的源主机即可。这样就不需要对源主机修改任何配置了,只需要更改解析IP和修改节点主机的HOST就好了。
linux的host文件保存在 /etc/host 直接下载下来用编辑器[推荐notepad++],在尾部增加 ip 域名 跟win下host一样的 保存上传即可。
最后记得检测下 nginx 的配置文件是否正确,
/usr/local/nginx/sbin/nginx -t
如果提示以下代码说明配置文件OK
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
然后K掉nginx进程[重启nginx]
kill -HUP `cat /usr/local/nginx/logs/nginx.pid`
然后在节点主机上ping下你的域名IP是否是源IP,最后就是修改域名解析到节点的IP了。
打完收工。