网站未正确跳转到 https (part2)

你好,又是我 ^^。

我遇到了一个小问题,之前似乎也有过,但这次情况可能有所不同。

问题如下:

  • 如果在浏览器中打开 cp2077.eu,页面会显示“正在维护”,这当然使用的是我的模板,而且并不安全。
  • 但如果打开 https://cp2077.eu,则会显示 Discourse 论坛,网站看起来是安全的,并启用了 SSL。

我猜测是我的 nginx 配置文件没有正确地将页面重定向到 https。这是我的配置文件,我已经检查过,但不知道问题出在哪里。看起来没问题(我认为看起来没问题),但也许有更懂行的人能帮我解决这个问题?非常感激:

server {

    listen 80;
    listen [::]:80;
    server_name www.cp2077.eu;
    return 301 https://cp2077.eu$request_uri;
}

server {

    listen 443 ssl;
    listen [::]:443 ssl;
    server_name www.cp2077.eu;
    ssl_certificate /etc/letsencrypt/live/cp2077.eu/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/cp2077.eu/privkey.pem;
    return 301 https://cp2077.eu$request_uri;
}

server {

    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name cp2077.eu;

    ssl on;
    ssl_certificate /etc/letsencrypt/live/cp2077.eu/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/cp2077.eu/privkey.pem;



    http2_idle_timeout 5m; # 从默认的 3m 提升至 5m

    location / {
        proxy_pass http://unix:/var/discourse/shared/standalone/nginx.http.sock;
        proxy_set_header Host $http_host;
        proxy_http_version 1.1;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto https;
        proxy_set_header X-Real-IP $remote_addr;

    }

}

您有什么建议可以修改这里以解决该问题吗?

你只允许了 ẁww.

我该如何将 www 和 cp2077.eu 重定向到 https?

尝试添加域名。

server_name cp2077.eu www.cp2077.eu;

在发帖前已经尝试过,运行命令 nginx -t 时抛出以下错误:

nginx: [warn] 在 0.0.0.0:443 上存在冲突的服务器名称 "cp2077.eu",已忽略
nginx: [warn] 在 [::]:443 上存在冲突的服务器名称 "cp2077.eu",已忽略

您是否仅在第一个 server {}(端口 80)中添加了它?

我已在 80 和 443 端口都添加了它。

—编辑。

我刚刚只在 80 端口添加了它,看起来正在运行。不过现在它提示连接不安全(此页面的部分内容不安全,例如图片)。

您应在 Discourse 设置中启用 强制 HTTPS

我会试试的。非常感谢,Arkshine。