nginx + gunicorn + Django やってみた
Macのローカルでnginx + gunicornを使ってDjangoを動かしてみた。
設定のメモ。
nginxの設定
nginx.conf ファイルを編集する。
vim /usr/local/etc/nginx/nginx.conf
# workerプロセスを実行するユーザー名 user nginx; # workerプロセス数 worker_processes 1; # エラーログを書き出すファイルのパスを指定 error_log logs/error.log; # プロセスIDを書き出すファイルのパスを指定。stop 等でプロセスを特定するのに必要 pid logs/nginx.pid; events { # 1プロセスあたりが同時にリクエストをさばける数。 # worker_processes x worker_connections = 最大接続数。 # 今回なら 1 x 1024 = 1024が最大接続数。 worker_connections 1024; } http { include mime.types; default_type application/octet-stream; # ログのフォーマットを指定して、それに main と命名。 # フォーマットを指定したい場合はコメントアウトをはずす。 #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; #access_log logs/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; server { # 80番ポートをリッスン。 listen 80; # サーバー名を指定 server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { # リクエストをhttp://127.0.0.1:8000 に受け流す。 proxy_pass http://127.0.0.1:8000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 単純に静的サイトを公開したい場合はこちらの設定を使う #root /Users/fumiki/www; #index index.html index.htm; } # エラーページの設定 #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } }
Djangoプロジェクト側の設定
settings.py内の、INSTALLED_APPSに'gunicorn' を追加しておく
gunicorn を走らせる
python manage.py run_gunicorn
これで http://127.0.0.1:8000 でdjangoアプリケーションが実行されている状態になる。
http://localhost にアクセスすると、Djangoアプリがみれるはず。