Are you sure that
server {
listen 443 ssl;
root /var/www/html;
return 301 https://$host$request_url;
is correct? That server block is listening on port 443 only, so the client is already on HTTPS, so no reason to redirect. This should cause a redirect loop. The redirect should happen in a server block listening to port 80.