今天给 services.ghostchu.com
绑定网站目录后访问一直提示 404。
排查两个小时后,发现日志里赫然出现了这样一句 LOG:
2021/12/27 01:15:27 [error] 35217#0: *70 open() "/www/wwwroot/api.ghostchu.com/i.html" failed (2: No such file or directory), client: {My IP}, server: api.ghostchu.com, request: "GET /i.html HTTP/1.1", host: "services.ghostchu.com"
???为什么 services.ghostchu.com
访问到了 api.ghostchu.com
的站点目录,我直接百思不得其解。
检查了 Nginx 的 conf 文件,root 目录都设置的是正确的,.user.ini
的 base_dir
也是完全正确的。
之前使用 LNMP 和 OneInStack 的时候从来没遇到这种玄学问题。
更加离谱的事情
在我发现 services.ghostchu.com
和 api.ghostchu.com
干架后,我临时下线了 api.ghostchu.com
站点。
令我瞳孔地震的事情发生了:
services.ghostchu.com
现在和 pan.ghostchu.com
串站了。
?????????????????????????????????????????
都是 SSL 惹的祸
考虑到之前从没出现过这种现象,怀疑是 BT 面板特色,到 BT 论坛以 “域名绑定 混乱” 查找了下,看到一个令我这辈子都无法理解和想到的回答:
?????????????????????????
什么东西?
我直接震撼一整年。
为什么啊?这么做有什么意义吗?
你直接默认行为报证书错误不行吗,为什么要随机一个已开启SSL的站点啊,我排查了一晚上啊!
签发 SSL 证书
更离谱的是,因为这个机制,所以 SSL 证书签发一直过不了。
所以我要先去 CDN 那里关闭 http 重定向和 hsts,然后才能给 services 子域签发证书。
签发后,行为恢复正常。
吐了。