django admin をサブディレクトリで動かした時の設定 覚書

2012/12/05 nginx.conf に追記・削除。
       →スラッシュ補完を正常に動作させるため。

os:Ubuntu 12.04.1 LTS
Python 2.7.3
django 1.4.2
nginx 1.1.19 

django admin をサブディレクトリで動した時の設定をメモ。
リバースプロキシにnginxを使い、djangoアプリサーバーは、デフォルトのrunserverを使用。
django admin (管理画面)を
http://www.example.com/admin ではなく、
http://www.example.com/djangodir/admin で動かす。
/static/フォルダが読み込めず、結局、nginxのconfでベタ打ち。
とりあえず動いている。
ちなみに、python開発環境には、virtualenvを使用している。

django の settings.py (抜粋)

# STATIC_URLのみ設定。
STATIC_ROOT = ''
STATIC_URL = '/djangodir/static/'
STATICFILES_DIRS = (
)

# 最終行に以下を追加
FORCE_SCRIPT_NAME='/djangodir'

nginx.conf (抜粋)※2012/12/05 追記・削除

        location /djangodir {
                 # 2012/12/05 以下の一行追記
                 rewrite ^/simpledjango/(.*)$ /$1 break;
                 proxy_pass http://localhost:8000;
        }
        
     # 以下、三行削除
        #<del datetime="2012-12-09T13:50:45+00:00">location /djangodir/admin/ {</del>
        #         <del datetime="2012-12-09T13:50:45+00:00">proxy_pass http://localhost:8000/admin/;</del>
        #<del datetime="2012-12-09T13:50:45+00:00">}</del>
  
        location /djangodir/static/ {
                 # static/がどうしても読み込めずベタ打ち
                 alias /home/user01/.virtualenvs/djangodir/lib/python2.7/site-packages/django/contrib/admin/static/;
        }

static/ の設定は、「とりあえず動く」ということで・・・。本番環境では問題あるかも?
djangoアプリサーバーは、gunicornに置き換える予定。

<参考>
nginx連載4回目: nginxの設定、その2 – バーチャルサーバの設定

コメントをどうぞ