Bt(宝塔面板)反向绑定/自建CDN节点/加快海外网站访问速度

宝塔面板20字数 3694阅读模式

不想BA的同学一边都用的国外的vps,香港、美国、韩国、等等。说句实话,BA实在太麻烦,而且个人隐私暴露无遗,说不定还会把隐私贩卖掉。但是大环境是这样的,屁民有什么办法。

大鸟今天要说的是如何利用Bt(宝塔面板)反向-代-理来自建CDN节点加速我们在海外的网站,通过cdn让我们的网站访问速度更优秀。说到CDN节点,那我们得自购一台vps,手里有闲置的vps也可以玩玩,推荐的地方是香港、韩国、日本、俄罗斯伯力也不错。对于喜欢折腾的骚年来说,自己搞一搞cdn也是非常有意思的一件事情,今天来折腾一下如何通过智能的DNS解析+宝塔面板的反-向-代-理功能为我们的网站提供cdn节点加速功能,基本不需要代码操作,新手的福利,整个过程快速简单安全。
Bt(宝塔面板)反向绑定/自建CDN节点/加快海外网站访问速度

大鸟博客托管在linode的东京2号机房,额,是NTT线路,大家都知道的,速度不如东京1号机房。NTT线路大鸟觉得移动联动还可以,就尼玛电信的线路每天都是炸掉的感觉,非常非常不稳定。但是用linode习惯了,不想换了,于是想着就给电信单独解析一条线路,这样会不会好一点,自己做网站,反正就是折腾啊,那我们就开始折腾把!

实现原理

我们要实现CDN加速就先要来对实现这一效果的三个主要工具做一下解释:

智能DNS解析:域名解析服务器根据来访者的特征类型进行抓取,并针对性的做出不同的解析。比较常见的DNS判断线路规则有:网络供应商判断(如:电信、网通、移动、教育网等),地域判断(国内、国外),搜索引擎判断(百度、谷歌、搜狗等)。国外的一些DNS服务商还提供不同国家的判断,以满足不同网络情况的访客的优质访问,国内的免费比如说dns,dnspod,CloudXNS,dns.la都可以,国外的没试过。基本国内大部分第三方的dns都是智能的!大鸟这里用的是dns.com他们家的解析,所以就以这家为列。

反向-代-理:反向代理(Reverse Proxy)方式是指定某一中间服务器请求目标服务器以抓取目标服务器上的内容,访客通过中间服务器间接访问目标服务器的内容。这样被我们成为镜像,这个在后面会讲到。Bt(宝塔面板)的反向-代-理就动动鼠标点几下就可以了,不需要配置命令!

CDN:CDN的全称是Content Delivery Network,即内容分发网络,大家应该早就有听说过了。(一台vps,一个智能dns解析,一个宝塔面板)来实现最简单的cdn加速。

通过上面三个东西,聪明的朋友就能很快立即到CDN的原理了。我们将不同的服务器部署在不同的网络环境中(地区、服务商),统一抓取并存储目标服务器上的内容,再通过智能DNS判断访客的网络环境,将访客引导到访问效果最佳的服务器进行访问。我们这边可以形象的把cdn服务器理解成我们源服务器的中继站,访客可以在离他们最近的中继站获取到目标服务器上的内容,而无需长途跋涉自己跑去目标服务器。

1、所需准备及适合人群

  • DNS解析服务商(如DNSPOD等各种免费DNS服务商)
  • 节点服务器(镜像服务器)根据需要配置

适用人群:原服务器在香港或海外,或者原服务器负载能力有限,需要满足多地访问需求。(或者闲得无聊喜欢折腾)

注意:原服务器如果要被国内的镜像服务器抓取并展现,需要保证原服务器在国内有备案,否则会无法访问。

2、DNS智能解析

我们如果已经购买了vps,那就先到dns哪里解析新的ip吧。利用DNS域名解析提供的线路、地域、客户端等DNS解析功能,我们可以将不同的宽带用户、省份用户还有客户端用户解析到CDN节点上了。

Bt(宝塔面板)反向绑定/自建CDN节点/加快海外网站访问速度

这是dns.com的解析,大鸟新增了一条线路就是专门的电信线路到我们新购的服务器的ip上,也就是我们准备配置的cdn节点。大鸟一般喜欢先解析ip,如果你觉得麻烦,可以过一会在解析这个随意。因为早点解析,就早点生效啊!

3、bt面板配置及部署

假设我们有需要给1个源站(A)域名:www.daniao.org,因为大鸟的vps是linode日本机房电信线路很不好,所以大鸟选购一台国内电信速度访问特别好的线路vps,比如说伯力的机器,或者香港的机房。因为今天讲的是通过宝塔面板快速配置(比较简单,基本不需要代码操作),那么首先我们要在新够的服务器上安装宝塔面板,宝塔面板安装非常方便,具体可以看他们的官网:http://www.bt.cn(安装请选择Nginx,如果镜像服务器不做其他用途可以不需要安装FTP、数据库等),大鸟看过wdpc面板貌似也可以很容易的搭建,但是大鸟没试过。大鸟这里就不说如何安装bt面板了。

这里我以www.daniao.org作cdn加速为例,有一台源站VPS,还有一台用作CDN反向代#理的VPS,它两者对应的IP如下:

源站:192.168.100.100,就是www.daniao.org网站数据真实存放的地方
CDN:192.168.100.101  CDN节点,如果有多台操作方法是一样的

1)先在CDN节点上修改Hosts,目的就是告知CDN节点从那里去获取网站数据,也就是回源地址,修改如下:

vi /etc/hosts
192.168.100.100	www.daniao.org

但是由于我们使用了宝塔面板,我们可以直接在“文件”管理处编辑 /etc/hosts 文件,加上我们需要的记录。

添加完hosts记录之后,就是最重要的步骤:让新购买的服务器CDN:192.168.100.101这个节点去像源站服务器www.daniao.org的内容了。

2)添加站点

我们在宝塔面板->网站处“添加站点”,正常添加站点,FTP、数据库这些都可以不需要设置,如下图。

Bt(宝塔面板)反向绑定/自建CDN节点/加快海外网站访问速度

3)反向代理

设置完之后我们可以在网站列表右侧对刚刚添加的新站点进行“设置”->“反向代理”,如下图:Bt(宝塔面板)反向绑定/自建CDN节点/加快海外网站访问速度

4)重载nginx配置

设置完之后我们需要重载nginx配置,在宝塔面板“软件管理”处找到nginx,点右侧的“设置”->“重载配置”即可。

Bt(宝塔面板)反向绑定/自建CDN节点/加快海外网站访问速度

5)设置ssl证书

注意:如果源站启用了HTTPS协议,那么镜像站点也需要部署HTTPS证书,我们可以在上面面板中SSL处,免费部署证书。不然会有502的错误,我们这里配置的域名和主站点是一样的,如果你直接在这里申请Let's Encrypt证书会提示错误,但是主站点哪里是申请好的,我们可以直接复制过来,因为域名都是一样也就是解析的ip不一样,所以可以直接复制过来使用。

Bt(宝塔面板)反向绑定/自建CDN节点/加快海外网站访问速度

至此,所有需要的配置均配置完毕,等待解析生效后我们就可以通过ping我们的域名来测试是否生效,我们也可以借助第三方工具来检查不同线路、地区的访问是否已经路由到对应的服务器。

4、WordPress自动刷新缓存

对于Wordpress博客,如果启用CDN后页面被缓存,用户提交评论后无法马上显示出来,可以使用Ajax异步请求ngx_cache_purge接口(Bt(宝塔面板)默认已经安装好了ngx_cache_purge模块)当用户提交评论的时候则清除该页面缓存。只需要下面的这段js添加到footer.php即可。不过一般现在的主题都支持Aja异步刷新。所以这段代码不一定需要。

<script>
		$(document).ready(function(){
			$("#submit").click(function(){
				var uri = "https://www.daniao.org/purge" + window.location.pathname;
				$.get(uri,function(data,status){
					return true;
				});
			});
		});
</script>

宝塔里面也有提示:可通过purge清理指定URL的缓存,示例:http://test.com/purge/test.png

5、启用CDN后无法获取真实评论IP

如果是Wordpress用户,当你启用了Nginx CDN加速后,你会发现WP后台获取到的用户评论IP都变成了CDN节点的,解决这个问题也很简单,只需要将下面一段代码加入到wp-config.php文件中即可:

if (isset($_SERVER['HTTP_X_REAL_IP'])) {
$_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_X_REAL_IP'];
}

6、最终效果

如果这些都做完了,我们看看效果吧。利用ping测试工具,或者本地ping一下都能看到效果,这大鸟用站长工具的ping来测试下。

Bt(宝塔面板)反向绑定/自建CDN节点/加快海外网站访问速度

应该是看到效果了,香港这里大鸟的线路还是没变,其他电信都是变掉了。可以了,最后要的效果就是这样。

7、总结

利用Nginx反向绑定域名搭建CDN加速服务器低成本安装配置简单,特别适合不想使用付费CDN的朋友,事实上很多的专业CDN加速也是采用Nginx反向代|理的方式来加速网站访问,可以说Nginx CDN是非常有效的加速方法。

特别的利用Bt(宝塔面板)来搭建cdn更是简单容易,需要说明一点的是如果开启了代理中的缓存这个选项,Bt(宝塔面板)默认的缓存时间是12h,如果需要更改小点可以自己到配置文件里修改时间。

如果没有缓存的需要可以不选择,最后如果大家在配置过程中遇到问题,欢迎留言!

weinxin
我的微信
微信公众号
关注大鸟博客公众号
 最后更新:2020-9-24
大鸟
评论  20  访客  16  作者  4
    • 流浪汉
      流浪汉 2

      fifkker也可以搞来玩玩

        • 大鸟
          大鸟

          @ 流浪汉 Fikker免费版没有页面缓存
          自建CDN要想效果好花的钱也很多的!手里有闲置VPS可以搭建来玩玩,不然还是考虑第三方的比较好。如果真要搞,就搞一个点就可以了。

        • cliff
          cliff 0

          现在正在筹备自建CDN的工作,如果有熟悉自建CDN部份(fikker)的专业人士,请推荐,必有酬谢,感谢。

          • 灰常记忆
            灰常记忆 1

            看着蛮简单的,没时间折腾,手里好几台机器。

              • 大鸟
                大鸟

                @ 灰常记忆 哇,新面孔啊,欢迎常来!

              • kite
                kite 0

                谢谢你的教程,我你的教程做了,可是没法代理到我国外的服务器的网站,如果用阿里的服务器做CDN,网站是否需要备案才能访问?

                  • 大鸟
                    大鸟

                    @ kite 是的,国内的服务器你需要备案,才可以使用。

                  • 大爷快来玩
                    大爷快来玩 1

                    大鸟出品必属精品,我刚好有需要

                    • 小编
                      小编 0

                      手里好几台机器不知道怎么组建成cdn加速

                      • 丁丁
                        丁丁 0

                        那么如何手动删除所有的缓存尼

                        • kevin
                          kevin 2

                          用的godaddy新加坡的线路,发现联通的老打不开,用联通手机网络共享的wifi又可以,dns加速也打不开,估计被联通屏蔽了,试试你的方法看看行不行。

                            • 大鸟
                              大鸟

                              @ kevin 肯定行的,这方法还是不错的。 :mrgreen:

                            • ays
                              ays 0

                              按照作者的方法已经搞好了!但是我在多地ping的时候,发现有些地区会直接出来源ip,这个有什么办法可以解决吗?

                                • 大鸟
                                  大鸟

                                  @ ays 这只是一条线路,如果你要全部,那么你需要解析电信,联通,移动

                                • shmily
                                  shmily 0

                                  不添加这行也可以;
                                  vi /etc/hosts

                                  • 虾皮路
                                    虾皮路 0

                                    大虾,使用反代成功,但是发现一个问题:就是开启缓存后,页面一直停留在第一次访问,应该是默认加载自己的浏览器缓存,速度倒是快,但是后台更新文章后,访问页面还是没更新的状态,刷新页面也没用。只有去删除宝塔反代缓存的文件夹才能正常显示,但是需要每次去删除很麻烦。有解决办法吗?谢谢

                                    • 虾皮路
                                      虾皮路 1

                                      请教一下,这样开启反向代理后,点击登录输入用户名和密码后,还是变成未登陆的状态。网上找了很多方法都不行,请教如何解决?

                                      • 会飞的鱼
                                        会飞的鱼 0

                                        能隐藏源站IP就好了

                                        • 小鸟伏特加
                                          小鸟伏特加 0

                                          闲置VPS也要钱啊,和付费cdn相比哪个更划算呢?

                                          • 小小孩子们
                                            小小孩子们 0

                                            谢谢博主,手里闲置两台VPS已经配置成功了 :oops:

                                          匿名

                                          发表评论

                                          匿名网友

                                          :?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

                                          确定