Gunicornをバックグラウドで動かしてみる


これは個人的メモです。

環境

Amazon Linux AMI 2015.03 (HVM), SSD Volume Type – ami-cbf90ecb
Django 1.8.1
Gunicorn 19.3.0
Nginx 1.6.2

環境の構築方法は、以下を参照。
Nginx インストールメモ-はじめてのAWS | kazsoga(曽我一弘)ブログ
GunicornでDjangoのプロジェクトを起動してみる | kazsoga(曽我一弘)ブログ
Nginx+Gunicorn+AWSでDjangoの起動画面を表示するまでのメモ | kazsoga(曽我一弘)ブログ
Nginx+Gunicorn+AWSでDjangoのadmin画面が崩れているのを修正した時のメモ | kazsoga(曽我一弘)ブログ

Gunicorn単体でDjangoの起動画面を確認

動かしたいDjangoのプロジェクトのmanage.pyのディレクトリで、以下のコマンドを打つ。-Dというのが、バックグラウドのオプション。
$ gunicorn guni_nginx.wsgi -b ec2-xx-xx-xxx-xxx.ap-northeast-1.compute.amazonaws.com:8000 -D

コマンドを打っても、リアクションはまったくないので、プロセスを確認。
$ ps -ef|grep gunicorn
ec2-user 6382 1 0 13:45 ? 00:00:00 /usr/local/bin/python3.4 /usr/local/bin/gunicorn guni_nginx.wsgi -b ec2-xx-xx-xxx-xxx.ap-northeast-1.compute.amazonaws.com:8000 -D
ec2-user 6385 6382 2 13:45 ? 00:00:00 /usr/local/bin/python3.4 /usr/local/bin/gunicorn guni_nginx.wsgi -b ec2-xx-xx-xxx-xxx.ap-northeast-1.compute.amazonaws.com:8000 -D
ec2-user 6388 6327 0 13:46 pts/0 00:00:00 grep gunicorn

で、
ec2-xx-xx-xxx-xxx.ap-northeast-1.compute.amazonaws.com:8000
にブラウザでアクセスすると見えます。

Gunicornを停止したいときは、先ほどのプロセスの番号をkillします。
$ kill 6382

Nginx+GunicornでDjangoの起動画面を確認

nginxを起動して、動かしたいDjangoのプロジェクトのmanege.pyのディレクトリに移動して、gunicornをバックグラウドで起動します。
$ sudo nginx
$ ps aux | grep nginx
root 6425 0.0 0.2 109516 2100 ? Ss 13:47 0:00 nginx: master process nginx
ec2-user 6426 0.0 0.2 109952 2788 ? S 13:47 0:00 nginx: worker process
ec2-user 6428 0.0 0.0 114620 916 pts/0 S+ 13:47 0:00 grep nginx
$ gunicorn guni_nginx.wsgi -D

これで、
ec2-xx-xx-xxx-xxx.ap-northeast-1.compute.amazonaws.com
にアクセスするとDjangoの起動画面が表示されます。

個人的に/admin/でログインも試しましたが、問題ありませんでした。