1

この質問は尋ねますが、答えは Gunicorn の使用に関するものではありません。

DJANGO_SETTINGS_MODULE実稼働環境で実稼働に、ステージング環境でステージングに正しく設定するにはどうすればよいですか?

と の 2 つの設定ファイルがstaging.pyありproduction.pyます。

変数の設定に問題があったため、manage.py と wsgi.py のデフォルトの行を次のようにしました。

管理.py

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "settings.production")

wsgi.py

import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "settings.production") 

from django.core.wsgi import get_wsgi_application

application = get_wsgi_application()                                                

...本番環境では、この厄介な変数を使用した悪ふざけに関係なく、設定されていない場合、本番アプリは本番設定のままになりますDJANGO_SETTINGS_MODULE

問題は、ステージング アプリをステージング設定のままにして、その (別の) サーバーからメールが送信されないようにすることです。

ステージングに上記のファイルがあり、適切に設定するためのこれらの試みがありますsettings.staging

gunicorn.conf:

description "Gunicorn daemon for Django project"

start on (local-filesystems and net-device-up IFACE=eth0)
stop on runlevel [!12345]

# If the process quits unexpectadly trigger a respawn
respawn

setuid django
setgid django
chdir /src

script
    export DJANGO_SETTINGS_MODULE="settings.staging"
    exec /opt/Envs/mysite/bin/gunicorn \
        --name=mysite \
        --pythonpath=/opt/Envs/mysite/lib/python2.7/site-packages \
        --bind=127.0.0.1:9000 \
        --config /src/bin/gunicorn/gunicorn.py \
        mysite.wsgi:application
end script

また、以下を含む名前のファイル/etc/profile.d/myenvvars.sh:

export DJANGO_SETTINGS_MODULE=settings.staging

最後に、次の行で virtualenvwrapper を使用してい/opt/Envs/myappenv/binます。

export DJANGO_SETTINGS_MODULE=settings.staging

ご覧のとおり、ステージング サーバーでステージングの設定を維持するために、ベルトとサスペンダーの手法を試しています。ただし、これらの 4 つの方法で を設定しようとしてDJANGO_SETTINGS_MODULE=settings.stagingも、デフォルトのままでsettings.productionメールを送信することがあります。

DJANGO_SETTINGS_MODULEステージング サーバーと運用サーバーの両方で一度だけ設定する適切な方法は何ですか?

4

0 に答える 0