nginx 将所有请求重定向到 https,但不确定如何

nginx 将所有请求重定向到 https,但不确定如何

不久前,我设置了一个小型 Digital Ocean droplet 来托管我的副项目,同时确保所有 http:// 请求都重定向到 https://(使用 Lets Encrypt 证书)。我使用 nginx 作为 Web 服务器。但是,我现在需要进行一些更改,并且记不清如何配置 nginx 以每次重定向到 https。我已卸载 nginx(sudo apt-get purge nginx),从而删除了所有文件。

我现在已经重新安装了 nginx,但什么都没加载;甚至只是重定向到http://DROPLET_IPhttps://DROPLET_IP但随后加载失败(甚至没有挂起,只是浏览器快速无响应)。但是,我尝试设置几个 nginx 虚拟主机,但这些也会重定向,并执行与上述相同的操作。

所有配置都设置为默认值,包括nginx.confsites-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 并坚持使用将是最好的解决方案......

相关内容