2013年5月1日水曜日

Nginx + uWSGI で、Django を起動する。

タイトルそのままですが、一応動いたので、忘れる前にメモ。

OS は、Ubuntu12.04 です。

1.インストール


# apt-get install nginx
# pip install Django==1.4 uwsgi

2.設定


まず、Nginx 側。
location / へのアクセスを、uwsgi_pass で、127.0.0.1:4000 に飛ばしています。
ポートは、4000以外でも良いです。

File: /etc/nginx/sites-available/default
--
location / {
 uwsgi_pass 127.0.0.1:4000;
 include uwsgi_params;
}
--

次は、uWSGI。
/etc/init にconf ファイルを置くことで、自動的にuWSGIを起動します。
ポート4000で待ち受けて、uWSGI を起動(exec)します。
起動パラメータ:
 --chdir /home/<ユーザ名>/mysite … Django プロジェクトのディレクトリに移動
 --wsgi-file mysite/wsgi.py … プロジェクト内の wsgi.py を指定

File: /etc/init/uwsgi.conf
--
# simple uWSGI script
description "uwsgi tiny instance"
start on socket PROTO=inet PORT=4000
stop on runlevel [06]
exec uwsgi --master --processes 2 --die-on-term --chdir /home/akira/mysite --wsgi-file mysite/wsgi.py

3.Django プロジェクトの作成


ユーザのホームディレクトリに作ります。

# cd
# django-admin.py startproject mysite

/home/<ユーザ名>/mysite/mysite/wsgi.py の出来上がりです。

ここで、一旦、リブートしておきます。

4.動作確認


ブラウザからアクセスして、Django の画面が出ることを確認しましょう。

参考




Ubuntu12.04 + Nginx で、画像のリサイズを行う。

Nginx の HttpImageFilterModule で、サムネイル画像を作ってみます。

元の画像

http://3.bp.blogspot.com/-qn0m7KScp4A/TsTyX4cO5FI/AAAAAAAAANA/ooqc_7cGnis/s1600/NEC_0025.JPG

1.インストール


# apt-get install nginx

バージョンとモジュールの確認

# nginx -V

イメージフィルターのモジュールが入っています。すばらしい。
--with-http_image_filter_module

2.設定


キャッシュを使えるようにしておきます。

# mkdir /var/nginx
# cd /var/nginx
# mkdir cache
# mkdir temp

File: /etc/nginx/nginx.conf
--
http {
 proxy_cache_path /var/nginx/cache levels=1 keys_zone=cache1:15m max_size=50m inactive=7d;
 proxy_temp_path /var/nginx/temp;
--

levels    サブディレクトリ階層
keys_zone ゾーン名:メモリサイズ
max_size  ファイルサイズ(最大値)
inactive  キャッシュを保持する時間

File: /etc/nginx/sites-available/default
--
server {
 listen 80;
 server_name www.example.com;
 resolver 8.8.8.8;
 location /img/ {
  image_filter crop 100 100;
  proxy_cache cache1;
  proxy_cache_valid 200 1d;
  proxy_pass http://3.bp.blogspot.com/;
 }
--

resolver で、名前解決できるようにしておきます。
image_filter で、100x100 に変換し、proxy_cache で、キャッシュします。
proxy_pass で、元画像のURLを指定しています。

3.起動/停止


# /etc/init.d/nginx stop … 停止
# /etc/init.d/nginx start … 起動

4.動作確認


ブラウザから

http://www.example.com/img/-qn0m7KScp4A/TsTyX4cO5FI/AAAAAAAAANA/ooqc_7cGnis/s1600/NEC_0025.JPG

にアクセスすると、サムネイル画像を表示します。

参考