我在 AWS Lightsail Ubuntu 20.04 实例上托管了一个基于 Django 的网站,该网站在 Apache2 上运行。
使用 ip 18.133.43.205 时可以访问该网站。但是当我尝试使用域 roosta.xyz 搜索我的网站时,连接超时。
DNS 使用 AWS 的名称服务器。我不认为 DNS 是问题,因为当我进行 whois 查找时,它会显示 AWS 名称服务器,当我在 linux 终端中运行 dig roosta.xyz 时,会返回正确的 ip。
几天前,我收到了来自服务器的响应,但它要求使用 https,但我没有 ssl 证书,所以我的浏览器吓坏了。我不想使用https。但是在干预服务器后,试图阻止它想要使用 https,我现在又回到了连接超时。
另一件事是我在自己机器的终端上运行 curl roosta.xyz 并返回网页的 html?那么chrome怎么没有得到呢?!
这是 apache 虚拟主机配置文件的副本:
<VirtualHost *:80>
ServerName www.roosta.xyz
ServerAdmin webmaster@localhost
ServerAlias roosta.xyz
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Alias /static /home/ubuntu/myWebsite/static
<Directory /home/ubuntu/myWebsite/static>
Require all granted
</Directory>
<Directory /home/ubuntu/myWebsite/myWebsite>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
WSGIScriptAlias / /home/ubuntu/myWebsite/myWebsite/wsgi.py
WSGIDaemonProcess myWebsite_app python-path=/home/ubuntu/myWebsite python-home=/home/ubuntu/myWebsite/venv
WSGIProcessGroup myWebsite_app
</VirtualHost>
Apache2ctl -S
VirtualHost configuration:
*:80 roosta.xyz (/etc/apache2/sites-enabled/myWebsite.conf:2)
ServerRoot: "/etc/apache2"
Main DocumentRoot: "/var/www/html"
Main ErrorLog: "/var/log/apache2/error.log"
Mutex default: dir="/var/run/apache2/" mechanism=default
Mutex watchdog-callback: using_defaults
PidFile: "/var/run/apache2/apache2.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="www-data" id=33 not_used
Group: name="www-data" id=33 not_used
在网上搜索了几个小时后,我完全被难住了。我非常乐意提供更相关的代码或 lightsail 设置图片来帮助解决我的问题。
您的问题的根源在于您的服务器没有响应 HTTPS。
(如:在 TCP 端口 443 上根本没有响应。我的连接尝试只是不得不超时,因为您的服务器甚至没有返回“连接被拒绝”数据包。这通常是 DROP 而不是 REJECT 防火墙策略的效果) .
另一方面,Chrome 拒绝在纯 HTTP 上连接,因为它确定您的域的HSTS 策略 不允许这样做。由于该政策,Chrome 会调整任何
http://www.roosta.xyz
URL 并将其更改http
为https
URL。从 Chrome 测试 HSTS 策略:得到
chrome://net-internals/#hsts
您的域是预加载的 HSTS 列表的一部分(可能在https://hstspreload.org/上提交)
请参阅:https://source.chromium.org/chromium/chromium/src/+/master:net/http/transport_security_state_static。 json
要解决这个问题,您要么需要将您的域从 HSTS pe-load 列表中删除(短期内不会发生),要么您需要设置 TLS 以便您的站点显示在 https 上。