不久前,我设置了一个小型 Digital Ocean droplet 来托管我的副项目,同时确保所有 http:// 请求都重定向到 https://(使用 Lets Encrypt 证书)。我使用 nginx 作为 Web 服务器。但是,我现在需要进行一些更改,并且记不清如何配置 nginx 以每次重定向到 https。我已卸载 nginx(sudo apt-get purge nginx
),从而删除了所有文件。
我现在已经重新安装了 nginx,但什么都没加载;甚至只是重定向到http://DROPLET_IP
,https://DROPLET_IP
但随后加载失败(甚至没有挂起,只是浏览器快速无响应)。但是,我尝试设置几个 nginx 虚拟主机,但这些也会重定向,并执行与上述相同的操作。
所有配置都设置为默认值,包括nginx.conf
和sites-available/default
(符号链接到sites-enabled/default
)。
tl;dr:nginx 之前配置为以某种方式将每个请求重定向到 https://,但我现在需要禁用此功能,但不知道我最初是如何做到的。
是否有可能在某个地方安装了另一个 nginx,把事情搞砸了?还是一些文件残留在以前的安装中?所有文件都位于 中/etc/nginx
,当我从系统中清除 nginx 时,我确保在重新安装之前检查它们已被删除。
我的 Droplet 正在运行 Ubuntu 16.04。
运行netstat -lpn
我得到这个输出:
$ netstat -lpn
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN -
tcp6 0 0 :::22 :::* LISTEN -
tcp6 0 0 :::5432 :::* LISTEN -
Active UNIX domain sockets (only servers)
Proto RefCnt Flags Type State I-Node PID/Program name Path
unix 2 [ ACC ] STREAM LISTENING 469737 26068/systemd /run/user/1000/systemd/private
unix 2 [ ACC ] SEQPACKET LISTENING 8980 - /run/udev/control
unix 2 [ ACC ] STREAM LISTENING 8591 - /run/lvm/lvmetad.socket
unix 2 [ ACC ] STREAM LISTENING 8592 - /run/systemd/journal/stdout
unix 2 [ ACC ] STREAM LISTENING 9078 - /run/lvm/lvmpolld.socket
unix 2 [ ACC ] STREAM LISTENING 12629 - /var/run/dbus/system_bus_socket
unix 2 [ ACC ] STREAM LISTENING 12631 - /run/snapd.socket
unix 2 [ ACC ] STREAM LISTENING 12632 - /run/snapd-snap.socket
unix 2 [ ACC ] STREAM LISTENING 12633 - /run/acpid.socket
unix 2 [ ACC ] STREAM LISTENING 12636 - /run/uuidd/request
unix 2 [ ACC ] STREAM LISTENING 15788 - /var/run/postgresql/.s.PGSQL.5432
unix 2 [ ACC ] STREAM LISTENING 12630 - /var/lib/lxd/unix.socket
unix 2 [ ACC ] STREAM LISTENING 12717 - @ISCSIADM_ABSTRACT_NAMESPACE
unix 2 [ ACC ] STREAM LISTENING 8586 - /run/systemd/private
我的/etc/hosts
文件如下:
# Your system has configured 'manage_etc_hosts' as True.
# As a result, if you wish for changes to this file to persist
# then you will need to either
# a.) make changes to the master file in /etc/cloud/templates/hosts.tmpl
# b.) change or remove the value of 'manage_etc_hosts' in
# /etc/cloud/cloud.cfg or cloud-config from user-data
#
127.0.1.1 DROPLET_NAME.localdomain DROPLET_NAME
127.0.0.1 localhost
127.0.0.1 subdomain1.domain.com
127.0.0.1 subdomain2.domain.com
127.0.0.1 subdomain3.domain.com
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
答案1
这种情况发生在你的网络浏览器中,可能是因为之前启用了高速传输系统设置您的网站。您需要查阅浏览器手册以确定如何忘记 HSTS 设置。在 Firefox 中,您可以通过清除该网站的历史记录来执行此操作:https://support.mozilla.org/en-US/questions/919498
或者您可能只是使用从未使用过的另一个浏览器来访问该网站。
在我看来,启用 HTTPS 并坚持使用将是最好的解决方案......