一只会飞的旺旺
文章153
标签131
分类7
使用Nginx自建CDN加速Hexo博客

使用Nginx自建CDN加速Hexo博客

小卖铺上新啦!ChatGPT账号大甩卖! 一键直达

引言

​ 可能有很多人的网站由于不想备案,所以一般部署在国外服务器上面,这样导致的情况就是大多数国内CDN都无法使用,而且如果网站服务器线路不好的情况还会导致访问缓慢,这样会极大影响用户体验感!这时候我们就可以利用Nginx的反向代理设置达到网站加速的效果,同时由于访问的是节点服务器IP,也就避免了暴露源站IP的风险从而增强防御,而宝塔面板自带Nginx反向代理设置,操作起来就更简单容易了。

CDN

​ CDN,即 Content delivery network(内容分发网络),是指一种通过互联网互相连接的电脑网络系统,利用最靠近每位用户的服务器,更快、更可靠地将音乐、图片、视频、应用程序及其他文件发送给用户,来提供高性能、可扩展性及低成本的网络内容传递给用户。

​ 换言之,即我们的网站服务器位置是固定的,比如托管在北京电信机房,对于北京电信访客来说,网页加载速度很快,基本感受不到延迟,对于云南移动访客来说,网页加载速度就明显变慢,而对于海外访客来说,网页加载就要转圈圈了,体验不好。当我们上了 CDN 后,CDN 各地节点会缓存我们服务器的内容,根据 CDN 的原理,此时北京电信访客访问的服务器将是该 CDN 的北京节点(如果有),云南移动访客访问的将是云南节点(如果有),海外(中国大陆以外)访客访问的则是海外节点(如果有),访问及加载速度将会大幅提升,用户体验也会大大改善。

CDN工作流程

image-20220929093359073

​ 如上图所示,这是一个完整的流程图:客户端访问域名时,先向 DNS 请求域名 IP,DNS 查询到 CNAME 记录(如果没有 DNS 直接回复源服务器 IP),则进一步解析 CNAME 智能解析服务器, 智能解析收到请求根据客户端来源按规则判断并回复 CDN 节点 IP,客户端此时访问域名就连接到了回复的 CDN 节点,如果 CDN 节点没有缓存,则 CDN 就会发起连接到负载均衡器(如果没有则直接连接源服务器,一般在有多个源服务器后端时才会有负载均衡器),然后负载均衡器根据规则分流到源服务器,将内容返回给 CDN 节点,CDN 节点再返回给客户端,完成整个访问流程。

​ 从流程上看使用 CDN 后整个过程中增加了很多路由,看起来客户端访问速度可能会变慢,但实际上,从智能解析到负载均衡,客户端几乎是没有感知的,也就是说客户端能感受到的速度就是到 CDN 节点的速度。

准备

  • 一台延迟低的国外服务器A,如香港,台湾
  • 域名A,如wangwangit.com
  • 服务器A部署宝塔,并安装Nginx
  • 博客绑定的域名B,如www.wangwangit.com

教程

宝塔安装

一键脚本:

if [ -f /usr/bin/curl ];then curl -sSO https://download.bt.cn/install/install_panel.sh;else wget -O install_panel.sh https://download.bt.cn/install/install_panel.sh;fi;bash install_panel.sh ed8484bec

域名解析

配置域名A解析到服务器A的IP.如

image-20220929084817685

修改HOST

通过ping个人博客域名,如wangwangit.github.io(www.wangwangit.com),获取对应的IP

image-20220929085134149

编辑服务器A的/etc/hosts文件,添加博客IP/博客域名的配置

image-20220929084947709

配置反向代理

打开我们香港服务器上的宝塔管理界面.新增站点.添加反向代理

image-20220929085305039

反向代理配置如下,修改目标URL为自己博客的域名即可.

image-20220929095109087

检查代理是否成功

查看缓存目录

完成上面操作之后,访问域名,即可在缓存文件目录看到缓存文件,路径如下:

默认缓存目录:/www/server/nginx/proxy_cache_dir

反代配置文件:/www/server/nginx/conf/proxy.conf

使用ping域名检测

ping检测: https://ping.chinaz.com/wangwangit.com

若ip是自己服务器的ip,并且域名可以访问博客.则说明代理成功!

image-20220929095322940

微信支付码 微信支付
支付宝支付码 支付宝支付