我已经在具有公共 IP 地址的 Ubuntu 服务器上配置了我的 DNS 服务 (bind9)。我已将/etc/bind/db.mydomain.com
(我的域区域) 添加为计算机的“A”记录 (具有公共 IP 地址) machine1.mydomain.com A 153.203.52.35
:。
我可以machine1.mydomain.com
从互联网 ping 通。我也可以毫无问题地通过 SSH 连接到它。问题是,任何试图使用浏览器访问此机器上托管的网站(http://machine1.mydomain.com) 会自动重定向至 https (https://machine1.mydomain.com) 并出现以下错误:“连接到 machine1.mydomain.com 时发生错误。SSL 收到的记录超过了最大允许长度。错误代码:SSL_ERROR_RX_RECORD_TOO_LONG”。
Telnet 到机器的 80 端口工作正常:
$ telnet machine1.mydomain.com 80
Trying 153.203.52.35...
Connected to machine1.mydomain.com.
Escape character is '^]'.
我的 http 服务器 (nginx) 配置为使用端口 80,并且未配置 https 重定向。当我尝试使用服务器的 IP 地址访问网站时 (http://153.203.52.35) 网页显示没有问题,也没有重定向到 https。
我确信我的情况中的 https 重定向与我的 nginx 无关(请参阅下面我在 nginx 中启用的站点)
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/mydomain.com;
index index.php index.html index.htm ;
server_name mydomain.com;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_param SCRIPT_FILENAME /var/www/mydomain.com$fastcgi_script_name;
}
}
我花了两天时间试图弄清楚发生了什么,但没有成功。Http 重定向通常在 http 服务器级别完成,而不是在 DNS 服务器中完成。我很困惑。
任何解决此问题的评论或建议都会节省我的时间和金钱。
答案1
由于可以使用 curl 命令显示该网站,因此唯一剩下的事情就是使用以下帖子从浏览器中清除 DNS 和缓存:如何在 Chrome 中停止从“http://”到“https://”的自动重定向。 问题已经解决了。