Протокол https
является расширением http
, поэтому они в некоторой степени являются различными протоколами.В настоящий момент ваш сервер не ожидает http
on: 80, он скорее ожидает https
из-за настройки listen 80 ssl
.Это приводит к ошибке.
Вам необходимо отделить обработку http
запросов на: 80, которая должна быть перенаправлена на https
на: 443, от обработки https
на: 443, которая должна быть обработанаобычно.
Это можно сделать, разделив другой server
конфигурационный блок для http
on: 80:
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
return 301 https://$host$request_uri;
}
... и удалив прослушивание: 80 из текущегоблок:
server {
listen 443 ssl;
listen [::]:443 ssl;
# more code...
}
Следующая статья блога дает более подробную информацию, если необходимо https://bjornjohansen.no/redirect-to-https-with-nginx