Jon*_*nas 4 django virtualenv gunicorn
我正在使用Nginx作为Web服务器并Gunicorn安装在我的VPS上部署Django应用程序virtualenv.(我用virtualenv用virtualenvwrapper.)
当我Gunicorn像这样运行时,可以找到环境变量(例如数据库密码,名称):
workon virtual_env_name
# from my_project's root path
gunicorn my_project.wsgi --bind localhost:9000 --daemon
# this works
Run Code Online (Sandbox Code Playgroud)
我以这种方式导出环境变量:
# /home/user_name/Envs/virtual_env_name/bin/postactivate
export DATABASE_PASSWORD="secret_password"
Run Code Online (Sandbox Code Playgroud)
但是,下面的方法不会(无论是否virtual_env_name激活):
sudo service gunicorn start
# env variables can't be found - KeyError thrown
Run Code Online (Sandbox Code Playgroud)
这是我的gunicorn.conf脚本的样子:
start on (local-filesystems and net-device-up IFACE=eth0)
stop on runlevel [!12345]
# If the process quits unexpectadly trigger a respawn
respawn
setuid user_name
setgid www-data
chdir /home/user_name/my_project
exec /home/user_name/Envs/virtual_env_name/bin/gunicorn \
--name=my_project \
--pythonpath=/home/user_name/my_project \
--bind=127.0.0.1:9000 \
my_project.wsgi:application
Run Code Online (Sandbox Code Playgroud)
gunicorn.conf如果我将所有密码,密钥硬编码到我的Django settings.py而不是使用,我可以确认这是有效的os.environ[..].
当我开始时Gunicorn,我需要做些什么才能找到我的环境变量sudo service start?第一种和第二种方式有什么区别?谢谢.
您需要在gunicorn.conf中定义这些变量.
env DATABASE_PASSWORD="secret_password"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3575 次 |
| 最近记录: |