nginx - 安装后,域名显示默认页面

nginx - 安装后,域名显示默认页面

我在我的 VPS 上安装了 Let's Encrypt。在此之前,页面正常工作,但之后 - 域名显示“欢迎使用 nginx”页面。
我只编辑了默认 通过添加 SSL 声明

server {
    listen 80 default_server;
    listen [::]:80 default_server;
    # listen 443;

    root /var/www/html/public;
    index index.php index.html index.htm;

    server_name example.com;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    }

    location ~ /\.ht {
        deny all;
    }

    location ~ /.well-known {
        allow all;
    }


    return 301 https://$server_name$request_uri;
}

server {
    # SSL configuration

    listen 443 ssl http2 default_server;
    listen [::]:443 ssl http2 default_server;
    include snippets/ssl-vrs-factory.net.conf;
    include snippets/ssl-params.conf;
}  

出了什么问题?Nginx 已重新启动。

答案1

如果您使用两个不同的服务器块,则必须对两者进行配置。

如果您希望 http 和 https 的配置(根目录等)相同,则可以只使用一个服务器块,如下所示:

server {
    listen 80;
    listen 443 default_server ssl; // example, set it up as you like.

    # config }

我邀请你检查一下官方文件

答案2

甚至更好你可能正在尝试做什么首先根据以下return 301行:现在您有了可用的证书,您可以为 TLS 配置现有的服务器块,然后创建一个新的服务器块,将 HTTP 重定向到 HTTPS

server {
    listen 80;
    server_name example.com;
    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl http2 default_server;
    listen [::]:443 ssl http2 default_server;
    include snippets/ssl-vrs-factory.net.conf;
    include snippets/ssl-params.conf;

    server_name example.com;

    # Added this to prevent man in the middle attacks
    add_header Strict-Transport-Security "max-age=31536000"; 

    root /var/www/html/public;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    }

    location ~ /\.ht {
        deny all;
    }

    location ~ /.well-known {
        allow all;
    }
}

为什么我建议使用return 301重定向并添加Strict-Transport-Security标头,请阅读有关实施 TLS 的充分理由:否则浏览器将不知道您已配置 TLS,混合内容可能会导致问题等。

相关内容