天给大家写一下如何使用宝塔面板的反向代理功能来加速我们网站的访问速度。
教程场景:
网站域名:www.vlwx.com
网站服务器存放于Vultr美国洛杉矶的一台服务器上。但是Vultr的机器到国内网络速度并不好。我这里有一台搬瓦工DC9机房的三网GIA线路机器,计划使用这台搬瓦工GIA作为Vultr的国内用户访问的反向代理加速节点。国外用户正常访问Vultr服务器。
服务器要求:
如果你的网站对配置要求高,仅仅将Vultr的服务器配置提高即可,网络要求不高。
搬瓦工反向代理服务器最低配就可以使用,要求网络性能好。也可以换成其他香港等地的服务器。
搭建思路:
2台服务器,配合上域名的智能解析(分地区解析)来达到不同地区用户访问不同的服务器来达到加速访问的效果。
为什么不用有美国GIA或者香港节点的国外CDN?
因为大部分国外公司没有搞美国GIA或者香港节点CDN的,目前据我所知所有具有国内访问高速节点的CDN基本都是国内人做的,这些商家大多数容易跑路,而且价格不低。另外他们CDN服务很多客户,这些客户绝大多数做的都是在国内不允许的业务,遇到DDOS是常事。很多时候这些CDN不稳定也是这个原因。
优点:
1.可以显著提高用户访问速。
2.反代节点可随时更换,甚至你域名解析有宕机切换功能可以达到提高业务在线率的效果。
3.成本低,便于维护。反代节点一次设置后就不需要在操作了。
4.节点独享,不会像CDN一样因为其他客户被攻击让自己受到影响、
缺点:
1.看着不够高大上
2.适合场景少,适合服务器放国外,需要访问速度快,同时又对服务器价格有要求的客户。
3.反代节点不便于统一管理,需要配合域名解析操作,节点出问题需要自己更换解析,或者有域名解析的宕机切换付费套餐。
详细步骤:
1.设置源站服务器和反向代理服务器
源站服务器只需要搭建好你的网站,然后如果服务器有防火墙就把反向代理服务器IP加入白名单即可。其他无需设置。
反向代理服务器设置:
反向代理服务器上只需要安装Nginx即可使用!无需PHP和MySQL等程序。
1.添加一个站点,站点无需其他设置,然后在反向代理设置界面添加反向代理。
本教程反向代理开启了缓存功能,这里可以根据个人需求开不开都行。
缓存时间:43200分钟(30天)。
目标URL:就填写我们源站的网站地址,前面带上http或者https(视自己情况选)。后面不要带斜杠/
发送域名:发送域名是反代服务器访问源站服务器时候,要告诉源站服务器我要访问哪个域名。这里填我们网站地址即可。不带http或者https,后面也不带斜杠/
然后直接保存即可!
2.SSL证书设置
如果我们网站开启了https,在反向代理服务器上我们也需要开启https才行。这一步跟上面目标URL是对应的。
反代服务器的证书可以和源站服务器的证书不是同一个,但是必须是同一个域名的有效证书。
比如:我源站服务器放的证书是在腾讯云申请的,反代服务器的证书我在阿里云又申请了同一个域名的证书。这种就没问题。只要是一个域名的就行。你也可以两台服务器都放腾讯或者阿里的证书。一般建议放同一个,证书到期后好管理替换。其他家的证书也可以用。
3.反向代理服务器hosts文件设置
hosts文件是什么?
hosts文件是我们服务器里面一个存放域名和服务器IP对应关系的文件。默认这里是空的。优先级最高,当hosts文件指定了某某域名对应哪个IP,那么不管你域名解析设置的是多少,服务器都按照hosts文件设置的IP地址去访问。
为什么要在反向代理设置hosts?
因为本文DNS解析设置了分区域解析,域名直接解析到了反向代理服务器。如果你反向代理服务器要向源站请求资源的话,他默认是根据DNS响应的服务器IP访问的。设置hosts可以避免因为DNS设置导致的反向代理服务器无法请求到源站的情况发生。或者是你国内外都解析到了反向代理服务器,也需要设置hosts。
正常情况下因为本教程设置的国内大陆和大陆外两种解析结果,不会出现这等错误。但是建议还是设置hosts为好,万一请求的DNS返回错误了呢?
hosts文件位置:/etc/hosts
Windows操作系统hosts文件在:C:\Windows\System32\drivers\etc\hosts
hosts文件是没有后缀的。
hosts文件内前面是IP,后面是域名。IP和域名之间中间要有至少1个空格!你闲的蛋疼也可以多打几个空格。
示例:
45.32.85.109 www.vlwx.com 45.32.85.109 vlwx.com
记得保存。
到这里反向代理服务器就设置好了
2.设置域名分地区解析
其实域名解析上面教程都讲清楚了。这里还是说下详细吧。
本教程中域名解析,中国大陆解析到反向代理服务器,中国大陆外的区域全部解析到源站服务器。
域名分地区解析大部分都是免费提供的!
以阿里云云解析为例:
以www.vlwx.com为例,可以看到我设置了一个默认解析,这个默认是解析到反向代理服务器的。然后还有个解析线路是境外的。阿里云云解析中境外线路指的是除中国大陆之外的所有地区。
因为设置的特殊线路解析优先级高于默认线路,所以这样就达到了我们要求的效果。实际操作中根据自己不同服务商来操作。
这里域名解析教程也结束了。下面我们看看效果
3.查看反向代理实际效果
先全球ping一下看看解析对不对
ping结果中国内返回的都是IT7网络这个IP(反向代理服务器),国外的都是Choopa的IP(源服务器)。可见解析基本没啥问题。
然后下面有个香港返回的也是IT7(反向代理服务器)的IP,这就是DNS的问题,可能是那台服务器设置了国内大陆的DNS,也可能是阿里云DNS返回错误。
所以说上面我提到的设置hosts是非常必要的,万一DNS结果出错也不会影响到网站访问!
测试了下网页访问速度稳得一批,当然这个也跟你反向代理服务器有关。
看看