我有一个使用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)
答案 0 :(得分:2)
我通过将我的环境变量放在位于gunicorn.service
的{{1}}文件中解决了这个问题,因为/etc/systemd/system/
仅适用于当前的shell。
Env变量在文件中输入如下格式:
export