安装certbot后,nginx页面未找到错误

Mik*_*ke 1 ssl nginx flask nginx-location certbot

我有一个已启动并正在运行的 http 网站(带有 Flask 和 nginx)。我正在尝试使用 ssl 安装,certbot并按照他们的步骤操作会导致成功安装消息(恭喜...),但刷新我的网页会导致404 Not Found nginx/1.18.0 (Ubuntu). 这是nginx.conf之后的文件sudo certbot --nginx

server {
    server_name www.mydomain.com;

    location /static {
        alias /home/ubuntu/adviser/flaskblog/static;
    }

    location / {
        proxy_pass http://localhost:8000;
        include /etc/nginx/proxy_params;
        proxy_redirect off;
    }

    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/www.mydomain.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/www.mydomain.com/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

}
server {
    if ($host = www.mydomain.com) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


    listen 80;
    server_name www.mydomain.com;
    return 404; # managed by Certbot


}
Run Code Online (Sandbox Code Playgroud)

非常感谢任何帮助。

Kaz*_*ikM 5

首先,只需删除这一行:

return 404; # managed by Certbot
Run Code Online (Sandbox Code Playgroud)

这会导致返回 404 错误。

如果没有帮助,请更改整个此块:

server {
    if ($host = www.mydomain.com) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


    listen 80;
    server_name www.mydomain.com;
    return 404; # managed by Certbot
}
Run Code Online (Sandbox Code Playgroud)

对此:

server {
    listen 80;
    server_name www.mydomain.com;
    return 301 https://$host$request_uri;
}
Run Code Online (Sandbox Code Playgroud)

更新
另外,您可以尝试更改

return 301 https://$host$request_uri;
Run Code Online (Sandbox Code Playgroud)

return 301 https://www.yourdomain.com$request_uri;
Run Code Online (Sandbox Code Playgroud)

(由于一些奇怪的 StackOverflow 限制,我不得不替换mydomain为。)yourdomain