nginx - SSL および www リダイレクト設定

nginx - SSL および www リダイレクト設定

これは次のものと関連しています:
https://stackoverflow.com/questions/24538973/django-allowed-hosts-error-for-www-domain-and-ip-address

私は自分のサイトのwwwおよび非SSLリクエストをSSL非wwwドメインにリダイレクトしようとしています。フロントエンドWebサーバーとしてnginxを実行しています。

残念ながら、まだいくつかの問題が残っています。
* 実行するとhttps://www.domain.com、http400 を取得します
* 基盤となるアプリケーションから、www.domain.com および < ipaddress > でリクエストを受信して​​いるというエラーが引き続き発生します

下記の私のconfのどこが間違っているのか、誰か指摘してくれませんか?

server {
    listen <ip address>:80;
    server_name "";
    return 444;
}


server{
    listen <ip address>:80;

    server_name www.domain.com;
    return 301 $scheme://domain.com$request_uri;
}

#HTTPS server
server{
    listen <ip address>:80;
    listen <ip address>:443 ssl;
    server_name domain.com;

    location / {
        uwsgi_pass  unix:<path to socket file>;
        include /etc/nginx/uwsgi_params;    
    }

    if ($ssl_protocol = ""){
        return 301 https://$host$request_uri;
    }

}

関連情報