Django设置密钥环境变量502 nginx

时间:2016-07-04 07:13:59

标签: django nginx gunicorn

我有一个使用nginx和gunicorn在Ubuntu服务器上运行的Django webapp。我正在尝试正确设置我的settings.py,以便使用环境变量来隐藏SECRET_KEY等秘密信息以及API密钥。

我尝试将export SECRET_KEY='secret_key'放入.bashrc以及.profile,并在我的SECRET_KEY=os.environ['SECRET_KEY']文件中使用settings.py,但这会导致502错误在重新启动gunicorn时,nginx及其版本在底部的网关错误。我不知道还有什么可以尝试,因为我对设置服务器很陌生。

相信这是我的gunicorn服务的初始文件:

[Unit]
Description=gunicorn daemon
After=network.target

[Service]
User=myuser
Group=www-data
WorkingDirectory=/home/myuser/myproject/mysite
ExecStart=/home/myuser/myproject/mysite/myprojectenv/bin/gunicorn --workers 3 --bind unix:/home/myuser/myproject/mysite/mysite.sock mysite.wsgi:application


[Install]
WantedBy=multi-user.target

我在尝试请求网站时在nginx错误日志中发现了这个错误,它给出了502坏网关:

*20 connect() to unix:/home/myuser/myproject/mysite/mysite.sock failed (2: No such file or directory)

1 个答案:

答案 0 :(得分:2)

我通过将我的环境变量放在位于gunicorn.service的{​​{1}}文件中解决了这个问题,因为/etc/systemd/system/仅适用于当前的shell。

Env变量在文件中输入如下格式:

export