我管理的 VPS 在 CentOS 8 上运行 Apache。该服务器使用 Cloudflare 作为 CDN 和代理。
我注意到 VPS 上的四个域之一已关闭 - 自从几个月前移至该主机后,它可能就已关闭。我不知道。这是一个爱好领域,并没有受到太多关注。现在,它需要修复。
Cloudflare 报告 521 错误 - 主机没有响应。我发现这可能是由于 DNS 或 SSL 设置配置不正确造成的,因此我在 Cloudflare 上关闭了 SSL,并为了进行测试,将所有各种 A 和 CNAME 记录更改为“仅限 DNS”。进行更改后,我现在收到上述错误 (ERR_SSL_PROTOCOL_ERROR)。
请注意 - 每次测试时,我都会打开一个全新的 Chrome 隐身会话,以确保我没有残留的 cookie 或其他内容。
我使用了几种重定向检查工具,并且我看到正在发生重定向循环。比如:
http://sample-bad.com - 301 redirect to
http://www.sample-bad.com - 308 redirect to
https://www.sample-bad.com
...然后又继续了。
我想罪魁祸首一定是我的httpd.conf 文件。我看了看,没看出有什么问题。所以我完全删除了该域的虚拟主机条目。停止并重新启动服务器,确认该站点不再尝试加载。酷。
下一站,我复制了一个正常工作站点的虚拟主机条目,然后将正确的域名复制/粘贴到工作站点上。看新代码:
<VirtualHost *:80>
ServerName sample-bad.com
Redirect permanent / http://www.sample-bad.com/
</VirtualHost>
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /var/www/html/www.sample-bad.com/
ServerName sample-bad.com
ServerAlias *.sample-bad.com www.sample-bad.com
ErrorLog logs/sample-bad.com-error_log
CustomLog logs/sample-bad.com-access_log common
ErrorDocument 404 /404.php
<Directory "/var/www/html/www.sample-bad.com">
AllowOverride All
Options Indexes FollowSymLinks
</Directory>
</VirtualHost>
这与良好的工作域相同。
我有一个一行 .htaccess 文件,允许使用 php 读取 xml 文件。为了进行测试,我完全删除了该文件。这里不可能出现 .htaccess 错误。
此时...我陷入困境。
我在服务器上的任何位置都找不到任何类型的 ssl.conf 文件。可选的conf文件似乎都没有提到这个域——甚至没有提到ssl。这里的计划是做 VPS 上其他三个(工作)域所做的事情,即使用 Cloudflare 的内置 SSL 证书并让它们处理所有这些。所以我们根本没有真正运行证书。
这个 https 重定向来自哪里?我该如何解决这个问题?我花了几个小时进行研究,令人沮丧的是,90% 的建议都是针对最终用户的 - 清除 cookie/缓存、尝试其他浏览器等。这显然不会有帮助。
感谢您的帮助。
经过全面调试后,发现问题是 DNS 中的 A 记录不正确。挖几个小时却一无所获!
感谢任何试图向我解答这个问题的人。