65897


Djangoの勉強をしており、AWSでアプリケーションを公開しようというところまできたのですが、ブラウザでアクセスしてみると以下のエラーが出てしまいます。

[code]

    Bad Request (400)
    
[/code]

また、Djangoのlogには以下のエラーが出ます。

[code]

    Invalid HTTP_HOST header: '<IP アドレス>'. You may need to add '<IP アドレス'>' to ALLOWED_HOSTS.
    
[/code]

このエラー文でググってみると、Djangoの設定ファイル(settings.py)のALLOWED_HOSTSに  
IPアドレスを設定すれば良いと出てくるのですが、変更してもエラーの内容は変わりません。

実際の設定は次のようにしています。

[code]

    ALLOWED_HOSTS = [os.environ.get('ALLOWED_HOSTS')]
    
[/code]

環境変数のALLOWED_HOSTSにAWSで割り当てられているIPアドレスを入れています。  
直接IPアドレスを入れたり、ワイルドカードを使ってもダメでした。 （= ['*']のように）

DjangoやAWSなど初めてだらけでどうやってデバッグすれば良いかもわからず、完全に行き詰まってしまいました。

何か少しでも心当たりがある方にアドバイスをいただきたいです。


CC BY-SA 4.0
2020-04-23T08:49:09.093
65887
2020-04-23T12:38:10.253
2020-04-23T11:48:48.490
3060
36888
question
aws django nginx
エラーInvalid HTTP_HOST header: '<IP アドレス>'. You may need to add '<IP アドレス'>' to ALLOWED_HOSTS. (Django、AWSに詳しい方お願いします。)


エラーメッセージの『Invalid HTTP_HOST header: ''. You may need to add '' to
ALLOWED_HOSTS.』のの部分にはDjangoにアクセスしたブラウザが稼働しているマシン(以下、"クライアントマシン"と呼びます)のIPアドレスが書かれていたと思います。

この問題を解決するには、クライアントマシンのホスト名かIPアドレスを、ALLOWED_HOSTSに追加してください。

<具体的な方法>  
まず、settings.pyのプログラムから、"ALLOWED_HOSTS = []"か"ALLOWED_HOSTS =
[aaa,bbb,ccc]"(aaa,bbb,cccの部分はホスト名かIPアドレスの並び）という行を探します。  
"ALLOWED_HOSTS = []" という行が見つかったら、"ALLOWED_HOSTS =
[クライアントマシンのホスト名かIPアドレス]"と変更してください。  
"ALLOWED_HOSTS = [aaa,bbb,ccc]"という行が見つかったら、"ALLOWED_HOSTS =
[aaa,bbb,ccc,クライアントマシンのホスト名かIPアドレス]"と変更してください。


CC BY-SA 4.0
2020-04-23T12:38:10.253
65897
2020-04-23T12:38:10.253
217
65887
answer