本文最后更新于 2024-05-21,

若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益, 请联系我 删除。

本站只有Telegram群组为唯一交流群组, 点击加入

文章内容有误?申请成为本站文章修订者或作者? 向站长提出申请

前言

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

CDN

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

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

1716320358731.webp

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

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

准备

  • 一台线路好的国外服务器,如香港,台湾,日本,美西CN2等
  • 域名,如poiblog.com
  • 服务器部署宝塔,并安装Nginx

教程

宝塔安装

一键脚本:

URL=https://www.aapanel.com/script/install_7.0_en.sh && if [ -f /usr/bin/curl ];then curl -ksSO "$URL" ;else wget --no-check-certificate -O install_7.0_en.sh "$URL";fi;bash install_7.0_en.sh aapanel

域名解析

配置域名解析到服务器的IP.如:(通常你购买VPS的时候在控制面板会有IP地址)

你也可以使用这条命令获取的你的服务器IP

curl ip.p3terx.com

1716320551457.webp

配置反向代理

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

反向代理配置如下,修改目标URL为自己博客的域名即可(有端口需要加上端口号,例如使用docker容器部署,php博客需要加上443端口)

配置缓存你需要勾选使用cache,但是我的部分网站需要即时的请求(如登录等),所以关闭了缓存功能,请按照各自需求使用缓存即可。不是什么页面都上缓存都好的~

1716320790269.webp

检查代理是否成功

查看缓存目录

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

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

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

使用ping域名检测

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

或者:https://www.itdog.cn/ping/

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

1716320875732.webp

DNS负载均衡

如果你有多台优化线路的服务器,例如日本服务器对东南地区有优化,俄罗斯和美国对北方地区有优化,印度和新加坡对西南地区有优化。以及各自运营商不同的优化,那么你可以通过dns服务商提供的dns负载均衡服务来优化不同线路的资源分配,以达到最佳的使用速度。

1716321078125.webp

注意

例如我的网站就使用了4台优化线路服务器进行负载均衡,使得海外的网站在回源时能够达到最佳的访问速度。权重比例你可以按照你的服务器流量大小来分配,这个方法会比直接使用nginx负载均衡方便一些,但是对源站的负载压力很大,因为他只是处理网络优化问题,并不能解决并发造成的压力大问题。如果你的网站经常需要高并发访问,那你还是需要配置Nginx负载均衡的!(需要多台配置一样的机器,存放一样的内容,以供服务器轮询分发减小服务压力。)