很多人在家里搭建网站时都会遇到一个问题:运营商封禁了 80 和 443 端口。
网站虽然已经部署好了,但别人访问域名时却始终打不开。其实,只要借助 CDN,就可以让访客依旧通过标准的 HTTP/HTTPS 访问网站,而源站则使用其他端口提供服务。
本文以通用方案为例,介绍如何在家宽无法使用 80、443 端口的情况下,利用 CDN 搭建一个可以正常访问的网站。
为什么不能直接访问?
大多数家庭宽带都会限制 Web 服务常用端口,例如:
-
80(HTTP)
-
443(HTTPS)
即使申请到了公网 IPv4,这两个端口很多地区依然无法开放。
假设网站部署在服务器的 11451 端口,本地访问:
http://服务器IP:11451
能够正常打开网站,但别人直接访问:
https://你的域名
仍然无法连接,因为运营商拦截了 80、443 端口。
原理是什么?
CDN 实际上充当了一个中间层。
整个访问流程如下:
用户
│
▼
CDN(80/443)
│
HTTP 回源(11451)
│
▼
你的服务器(11451)
访客访问的是:
https://example.com
而 CDN 会自动去请求:
http://你的服务器IP:11451
因此,你的服务器完全不需要监听 80、443 端口,只需要保证 11451 可以正常访问即可。
第一步:部署网站
先将网站部署完成,例如:
-
WordPress
-
Halo
-
Typecho
-
Z-Blog
-
Cloudreve
-
Alist
-
其他 PHP、Node.js、Go 项目
假设网站运行在:
11451
浏览器测试:
http://服务器IP:11451
能够正常打开网页即可继续下一步。
第二步:修改 Web 服务端口
无论是 Nginx 还是 Apache,都需要把监听端口改成其他端口。
例如 Nginx:
server {
listen 11451;
server_name example.com;
root /www/wwwroot/example;
index index.php index.html;
}
保存配置后重新加载:
nginx -s reload
再次确认:
http://服务器IP:11451
可以正常访问。
第三步:开放服务器端口
确保服务器已经放行 11451 端口。
如果开启了防火墙,可以执行:
ufw allow 11451
如果是云服务器,则需要在安全组中放行对应端口。
只有公网能够访问:
服务器IP:11451
CDN 才能正常回源。
第四步:域名接入 CDN
将域名解析到 CDN。
目前大部分 CDN 都支持这种方案,例如:
-
Cloudflare
-
腾讯 EdgeOne
-
阿里云 ESA
-
百度云加速
-
又拍云
-
七牛云
开启代理(橙色云、小云朵等)即可。
第五步:配置 CDN 源站(最重要)
这一步是整个教程最关键的一步,也是最容易配置错误的地方。
进入 CDN 后台,找到**源站(Origin)**配置。
假设源站信息如下:
源站 IP:
1.2.3.4
源站端口:
11451
这里一定要注意:
CDN 回源协议请选择 HTTP,不要选择 HTTPS。
很多新手会认为网站使用 HTTPS,回源协议也应该选择 HTTPS,其实并不是。
如果你的源站监听的是:
http://服务器IP:11451
而 CDN 回源协议选择了 HTTPS,那么 CDN 实际访问的就是:
https://服务器IP:11451
由于 11451 端口通常并没有配置 SSL 证书,最终就会出现:
-
521
-
522
-
SSL Handshake Failed
-
无法连接源站
-
网站打不开
正确的配置方式应为:
源站 IP:
1.2.3.4
回源协议:
HTTP
回源端口:
11451
整个访问流程如下:
用户
│
▼
https://example.com
│
▼
CDN
│
HTTP 回源(11451)
│
▼
http://服务器IP:11451
用户访问网站时依然是 HTTPS,而 CDN 与源站之间使用 HTTP 即可。
对于家庭宽带建站来说,这是最简单、最稳定的配置方式。
第六步:配置 HTTPS
建议直接使用 CDN 提供的免费 SSL 证书。
推荐的连接方式如下:
用户
↓
HTTPS
↓
CDN
↓
HTTP(11451)
↓
源站
很多人误以为源站也必须部署 HTTPS,其实并不是。
只要 CDN 已经开启 HTTPS,访客访问网站时依然是加密连接。对于绝大多数家庭宽带建站场景来说,源站使用 HTTP 回源完全能够满足需求,同时还能避免 SSL 配置错误带来的各种问题。
第七步:修改网站程序配置
部分程序会记录自己的访问地址。
例如 WordPress:
后台中的"WordPress 地址"和"站点地址"应填写:
https://example.com
不要填写:
http://服务器IP:11451
否则容易出现:
-
无限重定向
-
CSS 无法加载
-
登录异常
-
图片无法显示
-
浏览器提示混合内容
常见问题
网站能打开,但样式全部失效
一般是程序生成了:
http://服务器IP:11451
需要把网站地址修改为自己的域名。
出现无限重定向
通常由以下几种原因造成:
-
CDN 与源站协议配置不一致
-
WordPress 强制 HTTPS
-
Nginx 配置重复跳转
-
CDN 开启了 HTTPS 重写
建议逐项排查。
CDN 返回 521、522
优先检查:
-
源站是否正常运行
-
11451 端口是否开放
-
防火墙是否放行
-
回源端口是否填写正确
另外还要重点确认:
-
回源协议是否误选为 HTTPS
-
源站是否实际监听在 11451 端口
很多网站一直打不开,并不是程序有问题,而是 CDN 回源协议配置错误导致的。
源站必须开放公网端口吗?
需要。
例如网站监听:
11451
公网必须能够访问:
服务器IP:11451
否则 CDN 无法连接到你的服务器。
总结
对于没有开放 80、443 端口的家庭宽带来说,借助 CDN 完全可以正常搭建网站。
整个配置流程并不复杂:
-
将网站部署到 11451 等可用端口。
-
确保该端口能够从公网访问。
-
将域名接入 CDN 并开启代理。
-
在 CDN 后台将回源协议设置为 HTTP,回源端口设置为 11451。
-
开启 CDN HTTPS,并将网站地址配置为自己的域名。
其中最容易踩坑的地方就是回源协议。如果源站没有部署 HTTPS,就一定要选择 HTTP 回源,否则即使网站本身运行正常,也会因为 CDN 无法连接源站而导致网站无法访问。










暂无评论内容