2012-08-27 14 views
6

私はDjangoプロジェクトを持っており、gunicorn(とapache proxing)を使って配信したいと考えています。 Nginxを使用することはできませんので、可能ではありません。GunicornとAPACHEを使ってDjangoをデプロイ

私は、Apacheプロキシとセットアップgunicornするランナーのスクリプトを設定しましたが、私は

2012-08-27 14:03:12 [34355] [DEBUG] GET/
2012-08-27 14:03:12 [34355] [ERROR] Error handling request 
Traceback (most recent call last): 
    File "/home/tileone/venv/lib/python2.6/site-packages/gunicorn/workers/sync.py", line 93, in handle_request 
    self.address, self.cfg) 
    File "/home/tileone/venv/lib/python2.6/site-packages/gunicorn/http/wsgi.py", line 146, in create 
     path_info = path_info.split(script_name, 1)[1] 
    IndexError: list index out of range 

私はこのスクリプト

#!/bin/bash 
LOGFILE=/var/log/gunicorn/one-project.log 
VENV_DIR=/path/to/venv/ 
LOGDIR=$(dirname $LOGFILE) 
NUM_WORKERS=5 
# user/group to run as 
USER=USER 
GROUP=GROUP 
BIND=127.0.0.1:9999 
cd /path_to_project 
echo 'Setup Enviroment' 
#some libraries 
echo 'Setup Venv' 
source $VENV_DIR/bin/activate 
export PYTHONPATH=$VENV_DIR/lib/python2.6/site-packages:$PYTHONPATH 
#Setup Django Deploy 
export DJANGO_DEPLOY_ENV=stage 
echo 'Run Server' 
test -d $LOGDIR || mkdir -p $LOGDIR 
export SCRIPT_NAME='/home/tileone/one-project' 
exec $VENV_DIR/bin/gunicorn_django -w $NUM_WORKERS --bind=$BIND\ 
       --user=$USER --group=$GROUP --log-level=debug \ 
       --log-file=$LOGFILE 2>>$LOGFILE 

と私のApacheの設定を実行していますが、この奇妙なエラーを取得していますこのように:

Alias /static/ /hpath_to_static/static/ 
Alias /media/ /path_to_static/media/ 
Alias /favicon.ico /path_to/favicon.ico 

ProxyPreserveHost On 
<Location /> 
    SSLRequireSSL 
    ProxyPass http://127.0.0.1:9999/ 
    ProxyPassReverse http://127.0.0.1:9999/ 
    RequestHeader set SCRIPT_NAME /home/tileone/one-project/ 
    RequestHeader set X-FORWARDED-PROTOCOL ssl 
    RequestHeader set X-FORWARDED-SSL on 
</Location> 

私は間違っていますか?このため当然のことながら

FORCE_SCRIPT_NAME = '/one-project' 

RequestHeader set SCRIPT_NAME /home/tileone/one-project/ 

、代わりにsettings.pyに相当を追加:

答えて

10

はケースで誰もが、私は同等のものを削除することによってこの問題を解決するために同様の問題管理していますApacheの設定は次のようになります。

ProxyPreserveHost On 
<Location /one-project/> 
    SSLRequireSSL 
    ProxyPass http://127.0.0.1:9999/ 
    ProxyPassReverse http://127.0.0.1:9999/ 
    RequestHeader set X-FORWARDED-PROTOCOL ssl 
    RequestHeader set X-FORWARDED-SSL on 
</Location> 
関連する問題