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.
  1. 이후에 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 882

M 2022년 2월 19일 2:50 오전

목록으로
1개의 답변이 있습니다. 1 / 1 Page

지금 오류를 보면 secrets.json 파일을 읽지 못해서 발생하는 오류로 보입니다.
secrets.json 파일을 정확히 읽을수 있게 먼저 수정해 보세요.

박응용

2022년 2월 19일 10:23 오전

감사합니다 제가 쿠키커터를 사용해서 했다보니가 이미 production.py 에 기본 세팅되어 있는 것들이 있더라고요 secret_key 도 포함되어 있고요 그래서 base.py로 secret_key 옮겨주고는 적용시켰더니 되네요 감사합니다 :) - ye님, 2022년 2월 21일 4:14 오후 추천 , 대댓글