gpt4 book ai didi

django - 更正 gunicorn.conf 以获取 Django 使用的环境变量

转载 作者:行者123 更新时间:2023-12-05 00:20:42 25 4
gpt4 key购买 nike

我正在使用 Nginx 在我的 VPS 上部署 Django 应用程序作为 Web 服务器和 Gunicorn安装在 virtualenv . (我正在使用 virtualenvvirtualenvwrapper 。)

当我跑 Gunicorn像这样,可以找到环境变量(如数据库密码、名称):

workon virtual_env_name
# from my_project's root path
gunicorn my_project.wsgi --bind localhost:9000 --daemon
# this works

我以这种方式导出了环境变量:
# /home/user_name/Envs/virtual_env_name/bin/postactivate
export DATABASE_PASSWORD="secret_password"

但是下面的方法没有(无论 virtual_env_name 是否被激活):
sudo service gunicorn start
# env variables can't be found - KeyError thrown

这是我的 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

这个我可以确认 gunicorn.conf如果我将所有密码、 key 硬编码到我的 Django 的 settings.py 中,就可以工作。而不是使用 os.environ[..] .

我需要做什么才能在启动时找到我的环境变量 Gunicornsudo service start ?第一种方式和第二种方式有什么区别?谢谢。

最佳答案

您需要在 gunicorn.conf 中定义这些变量。

env DATABASE_PASSWORD="secret_password"

关于django - 更正 gunicorn.conf 以获取 Django 使用的环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33652720/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com