【发布时间】:2021-06-04 23:43:04
【问题描述】:
我更改了 django 项目的 settings.py 以将 SECRET_KEY 作为环境变量加载:
SECRET_KEY = os.environ['SECRET_KEY']
然后我将变量存储在 /etc/bash.bashrc
我设置DEBUG=False,然后重启gunicorn,重启nginx,重启服务器。但是我的网站停止工作(502 Bad Gateway)!
这究竟是什么问题?我搜索了但我不太明白可能是什么问题。在此更改之前,该网站一直运行良好。
---更新---
我通过使用 nano 打开 .bashrc 来存储变量:
sudo nano /etc/bash.bashrc
然后添加变量:
export SECRET_KEY='***'
----更新2-----
我使用
分析了“gunicorn”状态sudo systemctl status gunicorn
看看是什么卡住了,正如预期的那样,它给了我这个: 是秘钥的问题!!
Mar 06 18:59:33 mymachine gunicorn[15556]: File "/home/mymachine/mymachine/site/settings.py", line 24, in <module>
**Mar 06 18:59:33 mymachine gunicorn[15556]: SECRET_KEY = os.environ['SECRET_KEY']
Mar 06 18:59:33 mymachine gunicorn[15556]: File "/home/atlass/bb_1/bb_0_venv/lib/python3.6/os.py", line 669, in __getitem__
Mar 06 18:59:33 mymachine gunicorn[15556]: raise KeyError(key) from None**
Mar 06 18:59:33 mymachine gunicorn[15556]: KeyError: 'SECRET_KEY'
Mar 06 18:59:33 mymachine gunicorn[15556]: [2021-03-06 18:59:33 +0000] [15581] [INFO] Worker exiting (pid: 15581)
Mar 06 18:59:33 mymachine gunicorn[15556]: [2021-03-06 18:59:33 +0000] [15556] [INFO] Shutting down: Master
Mar 06 18:59:33 mymachine gunicorn[15556]: [2021-03-06 18:59:33 +0000] [15556] [INFO] Reason: Worker failed to boot.
Mar 06 18:59:33 mymachine systemd[1]: gunicorn.service: Main process exited, code=exited, status=3/NOTIMPLEMENTED
Mar 06 18:59:33 mymachine systemd[1]: gunicorn.service: Failed with result 'exit-code'.
---更新 3----
所以这变成了..一个简单的恶心和嘲弄的任务:/ 原来是key本身有问题,我用python可以得到并打印出来,但是django中不会导入!!!
有什么帮助吗??
【问题讨论】:
-
在将变量添加到 bash.bashrc 后,你有没有
source /etc/bash.bashrc? -
@shiva 不,但我现在做到了。错误仍然存在
-
您究竟是如何存储变量的,以及当您在 bash 中运行
env时向我们展示了什么。 -
你可以试试 /etc/environment 看看是否适合你。
-
您的个人环境将反映到系统作业中。看看serverfault.com/questions/413397/…