この記事について
とあるDjango入門本を読んで、デプロイしてみたものの、アクセス時に躓いたので、後学のために残します。
環境
開発環境
OS : Windows10 pro
Python : 3.8
Django : 3.0.4
本番環境
PostgreSQL : 11.5
EC2インスタンスへSSH接続ツール : PuTTY
Nginx
Gunicorn
前提条件
デプロイ済みで、作成したWebアプリの稼働状況確認の段階とします。
ソース
settings.py
デプロイ時
DEBUG = False
ALLOWED_HOSTS = [os.environ.get('ALLOWED_HOSTS')]
環境変数
.bash_profile
(…略…)
export ALLOWED_HOSTS=<Elastic IP> ←AWSのインスタンス情報から確認できます。
実行
http://(Elastic IP)/ でアクセス... Bad Requestと表示される。
対処法
自分の環境では、どうやら環境変数のALLOWD_HOSTSが読み込まれないようなので、settings.pyに直接記入しました。
ALLOWED_HOSTS = ['127.0.0.1', '(Elastic IP)', '(EC2インスタンスのパブリックDNS(IPv4))']
おまじない程度にsourceコマンドで.bash_profileを更新後、Gunicornを再起動。
http://(Elastic IP)/ でアクセスすると行けました。
尚、独自ドメイン名でも、.bash_profile と settings.py のElastic IPの部分を独自ドメインに変更することでアクセスできました。
settings.pyを変更した際は、Gunicornの再起動を忘れないで下さい。
参考文献
この記事は以下の情報を参考及び一部引用して執筆しました。