众所周知现在的家用宽带虽然容易申请到公网IP,但是80/8080/443这些端口都是被封的,要想从外网访问要加其他的端口号,比如ABC.cn:1234这样,非常不方便。

当然也有别的办法,比如花生壳、NAT123等软件的80端口映射,也可以自行购买VPS搭建FRP或NPS服务器实现80/443等端口映射,原理都是通过其他有80端口的服务器进行映射访问。

但是此类方法的短板也很明显,这些映射带宽都很小,大部分在1M BPS,对于网站来说访问速度很慢,如果图片多的要加载很久,但是升级带宽价格很高,这里我尝试了另一种方法实现80端口的外网访问。

CDN介绍

CDN的全称是Content Delivery Network,即内容分发网络。依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。
简单的说从网络拓扑角度看:我的域名ABC.cn——>CDN服务器——>我的服务器。

CDN服务商会在各地有很多CDN服务器,通过吧网站的静态内容(图片、文件等)缓存在各个服务器,当别人访问域名时,已缓存的内容可以直接从CDN服务器读取,可以很快的响应,同时CDN服务一般是通过流量收费的(很多服务商都要免费的流量额度可以使用,对于个人用户相当于白嫖),所以带宽是不用太担心的。

同时CDN可以隐藏服务器IP,别人通过你的域名只能找到CDN服务器,也可以提供一定的安全保证。

CDN回源非80端口实现外网访问

以上说的只是CDN加速的优势,接下来还是回到主题,通常CDN回源的http端口默认都是80的,但是我们的80端口被封不能访问(443同理)

(这里对于CDN的一些专有名词不多做解释,比如回源、源站、缓存,请大家自行查询)

但是我们要实现以下效果:我的域名ABC.cn:80——>CDN服务器:80——>我的服务器:234

我尝试很多CDN服务都不支持这样的操作(比如腾讯云、百度云、阿里云),只到找到又拍云和七牛云,才实行这个方案,以下以又拍云为例。

但是此方案也有局限性:

1、仅限于http的80端口访问,不支持https(443端口),因为https回源端口固定为443。

2、CDN只支持备案域名,无备案的域名使用不了。

详细教程

首先给个又拍云链接,先注册账号,会赠送一张代金券可以抵扣使用。

第一步,进入CDN页面创建CDN

加速域名填写你准备用于此网站的域名(需备案),源站地址写你的服务器IP(或DDNS域名),端口号根据实际情况选择(我的服务器网站端口为234)

第二步,会得到一个CNAME的地址,在你的域名解析里,把域名以CNAME形式解析到此地址,另外又拍云会提供一个测试地址供测试使用。

以上就基本完成CDN的配置,由于只是HTTP80访问,所以整体比较简单,以下还有注意事项;

回源HOST不要去填写,若填写了(比如,服务器IP:234)那么首页的链接都会转到这个地址

可以适当配置缓存规则,比如静态文件缓存7天,可以达到很明显的加速效果。如果网站更改了静态文件需要手动刷新CDN内容才行(控制板导航处有刷新按钮,点击进去提交你的域名刷新即可,CDN服务器会刷新所有缓存内容)

说点什么
教程内容无法面面俱到,有疑问的可以留言讨论|´・ω・)ノ
支持Markdown语法
在"CDN实现公网无80端口网站的外网访问"已有1条评论
Loading...