Um alle Anfragen an den Webserver nginx auf dem nicht verschlüsselten HTTP grundsätzlich auf die verschlüsselte Variante https umzuleiten, verwende ich folgende Konfiguration:
...
server {
listen [::]:80;
return 301 https://$host$request_uri;
}
...
Dieser Server-Block weist nginx an, auf dem Port 80 (Standard für http) auf (auch über IPv6 kommende) Anfragen zu hören und diese mit einer Weiterleitung zu beantworten.