How to configure nginx

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.