gunicorn 및 SECRET_KEY 관련하여 질문드립니다
이전의 postgresql 은
참고 링크 활용하여 해결했습니다
서버도 정상 작동 되고
고정아이피 allowded host에 넣어서
제 폰으로도 고정아이피 + 8000 해서 접속하는 거까지 확인하였는데요
그리고 나서는환경변수 설정
(제가 맥을 사용하는데
로컬에서는 따로 환경변수 설정하지 않아도
vscode 내에서 들어가지기는 하더라고요)
그 이후에 라이트세일 내에서
nano로 shell 파일 만들고는
gunicorn 작동시키는데에 셧다운 일어나더라고요
SECRET_KEY = env("DJANGO_SECRET_KEY")
File "/home/ubuntu/venvs/my_site/lib/python3.8/site-package
s/environ/environ.py", line 175, in __call__
return self.get_value(
File "/home/ubuntu/venvs/my_site/lib/python3.8/site-package
s/environ/environ.py", line 371, in get_value
raise ImproperlyConfigured(error_msg)
django.core.exceptions.ImproperlyConfigured: Set the DJANG
O_SECRET_KEY environment variable
[2022-02-19 02:43:53 +0900] [7406] [INFO] Worker exiting (
pid: 7406)
[2022-02-19 02:43:53 +0900] [7403] [INFO] Shutting down: M
aster
[2022-02-19 02:43:53 +0900] [7403] [INFO] Reason: Worker f
ailed to boot.
- 이후에 secret key가 로컬 내에 그대로 노출되어 깃허브에 올려진 걸 보고는 구글링 하여
secrets.json 파일 만든 이후에
secret_file = os.path.join(ROOT_DIR, 'secrets.json')
with open(secret_file) as f:
secrets = json.loads(f.read())
def get_secret(setting, secrets=secrets):
try:
return secrets[setting]
except KeyError:
error_msg = "SET the {} environment variable".format(setting)
raise ImproperlyConfigured(error_msg)
SECRET_KEY = get_secret("SECRET_KEY")
base.py 에 이렇게 적용시켜 주고는
secrets.json 파일은 .gitignore 에 추가시켜서 노출 안되게끔 하였는데요
.
.
.
.
.
.
.
이후 문제는
라이트세일 인스턴스 내에서 셧다운 일어난 이후에
계속 --settings=settings.config.production
하니까 module 없다는 에러 계속 뜨다가
그건 우선 넘어가고
다시 런서버 하니까
django.core.exceptions.ImproperlyConfigured: Set the DJANG
O_SECRET_KEY environment variable
이 에러가 계속 뜨는데요
아마 production.py 내의 secret_key가 설정이 안되어서 그런거 같은데
현재 production.py 내에는
SECRET_KEY = env("DJANGO_SECRET_KEY")
이렇게만 되어 있는 상태입니다
local 에서 secrets.json 파일 만들어서 똑같이 해보려고 하니까
이게 .gitignore 에 들어가게 되면
인식을 못하게 되는 거라서 이 방식은 안 되는 거 같은데요
위로 에러내용 올려보니
이렇게도 있습니다
raise KeyError(key) from None
KeyError: 'DJANGO_SECRET_KEY'
자세하게 쓰는게 좋을 거 같아 길어졌는데,
제가 모르는 상태에서 작성하다보니
쓸데없는 내용도 다소 포함되어 있는 듯 합니다
답변해주시면 정말 감사하겠습니다 :)
서버 구동시키는 거 저번에 posgresql 때문에 한 3일 고생하다가
해결하고는 아까 폰으로 들어가지는 거 보고 너무 기뻤는데
이제 secret_key가 힘들게 하네요
environ 들어가서 역추적해보기도 하고
시크릿 키 분리 등등 찾아보고 해도 답을 차지 못해 질문 남깁니다
https://alicecampkin.medium.com/how-to-set-up-environment-variables-in-django-f3c4db78c55f
이 방법이 필요한 걸까요?
.env 파일 만드는 걸로요
ye 님 1023
M 2022년 2월 19일 2:50 오전