Nginx not upgrading to Https

Viewed 287

I have configured nginx to upgrade the request to https

server {
        listen xxx.xxx.xxx.xxx:80;
        listen xxx.xxx.xxx.xxx:443 ssl;

        server_name example.com www.example.com

        access_log  /var/log/nginx/www.example.com_access.log;
        error_log /var/log/nginx/www.example.com_error.log warn;

        ssl_certificate /etc/nginx/ssl/certificates/www.example.com.crt;
        ssl_certificate_key  /etc/nginx/ssl/certificates/www.example.com.key;

    location / {
        proxy_set_header  Host $host;
        proxy_set_header  X-Real-IP $remote_addr;
        proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header  X-Forwarded-Proto $scheme;
        #https://www.scalescale.com/tips/nginx/504-gateway-time-out-using-nginx/
        proxy_connect_timeout       600;
        proxy_send_timeout          600;
        proxy_read_timeout          600;
        send_timeout                600;
        proxy_pass https://xxx.xxx.xxx.xxx:8443/;
        index  index.html ;
    }
}

but the configuration is not upgrading the request to https.

1 Answers
server {
    listen       80;
    server_name  example.com www.example.com;
    return       301 https://$host$request_uri;
}

server {
    listen       443 ssl;
    server_name  example.com www.example.com;
    ...
}

And if you don't need to encrypt the traffic between your backend and your nginx instance (you definitely don't need it if they are working on the same server), remove https protocol in a proxy_pass directive for some performance benefit.

Related