Назад | Перейти на главную страницу

nginx - после установки домен показывает страницу по умолчанию

Я установил Let's Encrypt на свой VPS. До этого страница нормально работала, но после - домен, показывающий страницу "Добро пожаловать в 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 был перезапущен.

Еще лучше и что вы, вероятно, пытались сделать в первую очередь на основе 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, смешанный контент может вызвать проблемы и т. д.

Если вы используете два разных серверных блока, вам придется настроить оба.

Вы можете использовать только один серверный блок, например, если хотите, чтобы ваша конфигурация (корневой каталог и т. Д.) Была одинаковой для http и https:

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

    # config }

Я приглашаю вас проверить официальный документ