Django Gunicorn プロジェクトを配信するにはどうすればよいですか?

Django Gunicorn プロジェクトを配信するにはどうすればよいですか?

開発サーバーで動作していたDjangoプロジェクトをUbuntuの本番サーバーに移行しようとしています。「python manage.py run_gunicorn 0.0.0.0:8000」を開始し、成功したようですが、通常のブラウザで接続しようとすると、http://JonathansCorner.com:8000/タイムアウトしています。(手動で「telnet localhost 8000」を実行し、GET 要求を出すと、適切な HTML が出力されます。) UFW は無効になっています。

外部からポート 80 で Gunicorn を使用できるようにするにはどうすればよいでしょうか?

答え1

考慮すべき点が 3 つあります。

まず、ファイアウォールに関してですが、するポート 8000 が「フィルタリング」されているため、何らかのファイアウォールが動作している必要があります。

~ nmap jonathanscorner.com -p 8000

Starting Nmap 6.40 ( http://nmap.org ) at 2014-01-14 09:53 CST
Nmap scan report for jonathanscorner.com (54.218.143.2)
Host is up (0.10s latency).
rDNS record for 54.218.143.2: ec2-54-218-143-2.us-west-2.compute.amazonaws.com
PORT     STATE    SERVICE
8000/tcp filtered http-alt

次に、これは EC2 上で実行されているようです。その場合、このトラフィックを許可するようにセキュリティ グループを変更する必要があります。

3 番目に、通常、gunicorn を直接公開するのは良い考えではありません。localhost:8000(現在と同じように) gunicorn を listen させてから、適切な Web サーバーを使用して gunicorn へのリクエストをプロキシします。

例えば、nginxをインストールして、それポート 80 で listen し、リクエストを gunicorn にプロキシしますlocalhost:8000

関連情報