有时我们部署的服务监听端口难以修改,而我们又想使用托管了CDN的域名去访问他,有时会发现无法访问,出现诸如“502 bad resquet”这样的提示词,这是因为监听的端口与CDN的默认流量端口不一致,因此无法调用其他端口的数据库。这时就需要使用CDN的端口转发技术。这里以cloudflareCDN为例。
Cloudflare HTTP 流量可以使用的回源端口 如下:80、8080、8880、2052、2082、2086、2095
Cloudflare HTTPS 流量可以使用的回源端口 如下:443、2053、2083、2087、2096、8443
首先确保自己的域名已经处于活跃的托管状态,并且ip也是指向域名的。
方法一:端口转发
在cf的dashpanel中,找到规则-origin rules,添加源规则。
选择“自定义传入请求”,逻辑为当访问的主机名为当前解析的域名时,将端口重写到服务监听的端口,从而实现访问。
方法二:URL重定向
在相同的位置打开页面规则并创建新的页面规则,
URL填写解析后的域名,箭头处选择“转发URL”,选择状态代码依情况而定,这里选择301-永久重定向代码,目标URL即为IP+端口的访问网站。
对比:
两种方法的原理不同,各有优缺点,第一种方法实现之后的访问速度依赖CDN,如果域名的延迟较高,会导致网站的打开速度变慢,同时图片等元数据加载变慢,第二种方法的访问速度依赖于服务器IP,IP的国内访问性越佳速度越快,但是暴露ip和端口的方式不利于网络安全。