我正在使用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 …Run Code Online (Sandbox Code Playgroud)