无感访问:
自建的NAS上,无IPv4公网IP,有IPv6地址; 安装了wordpress,做个网站。
如何让所有人无感的访问自己的站点呢?
那么必定是内网穿透(隧道模式)。
因为家庭宽带是不给开80、443端口的, 所以哪怕有公网IP,并且使用DDNS到自己的服务器,也必须带着其他的端口号。
所以需要自建一个内网穿透的中转站,或者直接购买从穿透服务商哪里买个服务。可参考:
好了,现在有了个1Mbps的小水管,外网可以无感的访问了。 但是打开网站太慢了,需要10秒以上。如何实现秒开呢?
实现秒开:
这里以笔者的小破站,全程https(证书白嫖),CDN使用的七牛云,为例:
基本信息:
主站:https://rangotec.com
CDN: https://cdn.rangotec.com
第一步:申请HTTPS证书,本文不再描述,各大厂商都有。
第二步:在七牛云上绑定申请的cdn子域名。打开对象存储 -> 空间管理 -> 添加域名。
添加 cdn 子域名时,把第一步下载的证书复制进来即可。
第三步: 配置镜像回源,七牛云上打开对象存储 -> 空间管理 -> 空间设置。 翻到最底部,有个镜像回源。
这一步的目的是自动把站点上的js、css、image同步到七牛云的cdn上。
第四步: 在wordpress上安装【 WP Super Cahce 】 插件。
注意必须先启用缓存功能,它的CDN才会生效,启用方式如下,【 WP Super Cahce 】-> 通用 -> 启用缓存功能。
然后打开 CDN选项卡, 勾选开启CDN支持, 在【 Off-site URL】 里填写 https://cdn.rangotec.com ,如下图位置
至此操作完毕,是否达到了秒开的目的呢? 我们验证下。
效果验证:
chrome 浏览器进入开发者模式,关闭缓存, 打开我们的网站,如下图:
此时主站dom文档是从服务器上获取,53ms,然后下面的css、js、图片等均来自CDN镜像,多次测试平均打开时间不到1秒。
注意:
第一次打开时,cdn镜像上是没有这些文件的,此时CDN的镜像回源就起作用了, 发现自己没有该静态文件或已超期,那么就去主站上拉取这些文件,再返回给客户端。 具体原理见下图
如果启用流量分析的话,关于如何获取客户端源IP的方法,参考这篇文章:
Haproxy搭配NPS内网穿透,获取客户端的源IP - NAS、私有云、服务器DIY (rangotec.com)