Я установил 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 }
Я приглашаю вас проверить официальный документ