In General, you do not want crawler such as Google or Facebook to treat multiple versions of the same page on your website as different pages. This creates duplicated contents and indexes and it is bad for SEO. Best practise is to redirect either your non-www version to www or vice versa. And redirect your HTTP version to HTTPS version. For example:

http://www.calvin.my -> https://calvin.my
http://calvin.my -> https://calvin.my
https://www.calvin.my -> https://calvin.my

In order to do this, you need to update your DNS record. You need to have an A record for both www and @. For most case, by default, www is created as a CNAME of @, you can delete this record and create an A record for it.

Once this is done, you need to update your nginx.conf by adding additional 2 server blocks.

# Server block to redirect all non-http requests
server {
    listen 80 default_server;
    listen [::]:80 default_server;
    return 301 https://calvin.my$request_uri;
}
# Server block to redirect https www requests
server {
        listen 443 ssl http2;
        ssl_certificate /path/to/cert.pem;
        ssl_certificate_key /path/to/key.pem;
        server_name www.calvin.my;
        return 301 https://calvin.my$request_uri;
}
# The actual Server block thats handle non-ww http request
server {
        listen 443 ssl http2;
        listen [::]:443 ssl http2;
        ssl_certificate /path/to/cert.pem;
        ssl_certificate_key /path/to/key.pem;
        server_name calvin.my;
        # Other Stuffs
}

Now reboot your nginx server and test on your browser. The settings should be reflected.

You can also check by curl, e.g.

curl -I https://www.calvin.my
HTTP/1.1 301 Moved Permanently
Date: Fri, 02 Sep 2016 18:40:24 GMT
Content-Type: text/html
Content-Length: 178
Connection: keep-alive
Location: https://calvin.my/