【发布时间】:2016-07-04 07:13:59
【问题描述】:
我有一个使用 nginx 和 gunicorn 在 Ubuntu 服务器上运行的 Django webapp。我正在尝试正确设置我的settings.py,以使用环境变量隐藏秘密信息,例如SECRET_KEY 以及API 密钥。
我尝试将export SECRET_KEY='secret_key' 放入.bashrc 和.profile 中,并在我的settings.py 文件中使用SECRET_KEY=os.environ['SECRET_KEY'],但这会在底部的nginx 及其版本中引发502 bad gateway错误,在重新启动 gunicorn 时。我不确定还可以尝试什么,因为我对设置服务器还很陌生。
我相信这是我的 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 bad gateway:
*20 connect() to unix:/home/myuser/myproject/mysite/mysite.sock failed (2: No such file or directory)
【问题讨论】:
-
你在使用谁的 .bashrc?您以什么用户身份运行 gunicorn?你是如何开始 gunicorn 的?
-
@DanielRoseman 我正在使用位于我的用户文件夹中的 .bashrc,我还使用这个用户来运行 gunicorn(它位于我项目的 virtualenv 文件夹中)。我不确定我用来启动 gunicorn 的确切方法,我只是使用“service gunicorn restart”来将更改应用到服务器。
-
由于您使用
service启动gunicorn,这意味着您在upstart 下运行它。您应该发布您正在使用的初始化脚本。 -
此文件通常位于何处?
-
它在 /etc/init/ 中,但是 你 一定是把它放在那里了,它本身并不存在。