2016-09-10 10 views
0

私はuWSGIとジャンゴを使用し、次のように私のWebサーバの設定ファイルを整理しようとしています:WSGIモジュールとDjangoの設定位置

/proj/ 
    web_config/ 
     docker-compose.py 
     ... 
     prod/ 
      nginx.conf 
      wsgi.py 
      uwsgi_params 
      uwsgi.ini 
      ... 
    app/ 
     __init__.py 
     settings.py 

私の問題は、私は、最終的なDjangoの設定を参照する方法がわからないです私のWSGIモジュールからモジュール:

uwsgi.ini

[uwsgi] 
# ...  
module = wsgi 
env = DJANGO_SETTINGS_MODULE=(../../)app.settings # <- Problem here 

wsgi.py

import os 

from django.core.wsgi import get_wsgi_application 

#            v- Or problem here -v 
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "(../../)app.settings") 
application = get_wsgi_application() 

/proj/または/proj/appwsgi.pyをかけることなく、右app.settings
を指すようにする方法はありますか?

答えて

1

この場合、djangoの設定を参照するには、uwsgi.iniから/proj/ディレクトリのchdirだけです。今ではmodule uWSGIの設定を使用してから(あなたはそれがすべての設定が含まれていない、あなたのapp/サブディレクトリにそれを維持することができます)あなたのwsgi.pyファイルをロードして、他に何もせずに、app.settingsDJANGO_SETTINGS_MODULEを設定し(それだけwsgi.pyファイルに設定するのに十分です) 。

(あなたがwsgi.pyバックapp/に移動した場合)、それは次のようになります。

uwsgi.ini:

[uwsgi] 
# ... 
chdir = /proj/ 
module = app.wsgi 

wsgi.py

import os 

from django.core.wsgi import get_wsgi_application 

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "app.settings") 
application = get_wsgi_application() 

をもしあなたドンwsgi.pyファイルを(何らかの理由で)app/に保存したい場合、uwsgi.pyには次のものが必要です。

[uwsgi] 
# ... 
chdir = /proj/ 
module = web_config.prod.wsgi 

しかしweb_configprodは、適切なpythonモジュール(pythonの2に彼らは内部__init__.pyファイルを持っている必要があります)でなければなりません。 wsgi.pyの内容は変更されません。

+0

私はそれが論理的だと思う。良い説明。 WSGIモジュールをルートレベルに置くと思います。 –

関連する問題