작성
·
523
·
수정됨
0
강사님 안녕하세요
강사님 강의 덕분에 저 혼자서 페이지도 만들고 nginx 사용해서 서버까지 배포해보았습니다.
다름이 아니라 3일전 까지만 해도 느리긴 했지만 잘 되던 서버가
오늘 서버내의 기능을 사용할려고 하니 502 bad gateway를 내 뱉으면서 멈춰버립니다.(되다가 안되다가 반복함)
그래서 error 로그를 찾아보니
2023/11/01 00:20:22 [error] 10930#10930: *232 upstream prematurely closed connection while reading response header from upstream
라고 뜨네요
3일동안 해봤는데 헛발짓만 했네용..
gpt한테 물어봐도 메모리 리소스, 네트워크 문제 , 응답시간 문제 등 이라곤 하는데 메모리랑 네트워크에는 아무런 문제가 없는거 같습니다.
3일전까지만 해도 잘되던 서버가 안되니까 많이 답답하네요..
답변 3
0
장고 서버는 어떤 설정으로 띄우셨나요? 장고 서버는 어떻게 띄우셨는 지 명령과 설정을 알려주시겠어요?
아래 댓글에서는 nginx만 재구동하셨다는 설명만 있네요.
0
배포된 서버가 전혀 동작안하시는 상황이신가요? 배포서버에서만 안된다고 쓰신 내용도 있고, 되다가 안되다가를 반복한다는 내용도 있어서 헷갈리네요. 되다가 안되다를 반복한다면 되는 상황은 어떻게 확인하셨나요?
보여주신 nginx 설정이 fastcgi처럼 써보지 않은 설정도 있고, 타임 아웃 설정 외에 실제로 장고 서버와 관련된 설정이 보이질 않아서요. 장고 서버를 어떻게 구동하셨다는 것인지 잘 모르겠습니다. 어떻게 장고 서버를 설정하신 것인지 좀 더 자세하게 설정과 명령을 정리해서 알려주시면, 저도 보다 좋은 답변을 드릴 수 있을 듯 합니다. 참고하신 자료가 있다면 참조 자료도 같이 알려주세요.
python manage.py runserver 명령은 장고 개발서버를 띄우는 명령이고, 이 명령은 실서비스 운영에서는 사용하지 않는 명령입니다.
제가 상황을 구체적으로 파악할 수 있도록 자세한 맥락 설명 부탁드립니다.
0
안녕하세요.
nginx 는 리버스 프록시 역할을 하는 웹서버이고, 장고 웹서버와 별개의 서버입니다.
보여주신 에러는 중계자인 nginx 입장에서의 에러일 뿐, 장고에서의 실질적인 에러 메시지는 아닙니다. 그러니 gpt에게 물어봐도 특별히 어떤 해법을 제시해주고 있지 않은 거죠.
장고 측에서 gunicorn 이나 uwsgi를 통해서 서버를 구동하시면 gunicorn/uwsgi 에러 로그를 기록하는 옵션이 있습니다. 그 에러로그를 통해 에러를 확인하실 수 있겠구요.
장고 에러를 트래캥할 때 가장 많이 사용하는 방법은 sentry 서비스를 연동하시는 것입니다. sentry는 장고로 개발된 에러 트래킹 서비스로서 sentry.io 의 서비스형도 있고 설치형으로도 이용하실 수 있습니다. 서비스형도 무료로도 기본적인 에러 트래킹은 하실 수 있으니, 아래 페이지를 참고하시어 sentry를 연동하시면 장고 에러 발생 시에 sentry 웹페이지를 통해, 에러 내역을 확인하실 수 있게 됩니다. 연동법은 아래 문서에도 잘 나와있지만 sentry key를 발급받고 sentry-sdk를 설치하고 settings.py 내에 sentry_sdk.init 메서드만 호출하면 됩니다.
장고의 에러만 확인하시면, 그 이후는 금방 해결되실 겁니다.
살펴보시고, 진행상황 댓글로도 남겨주시겠어요?
화이팅입니다. :-)
강사님 안녕하세요!
강사님이 말씀해주신대로 sentry 느리지만 천천히 하고 있습니다.
전 settings.py를 여러 파일로 나눠서
base.py와 url.py에 저렇게 적은 후에 sentry 이슈탭에서 에러 뜨는거 까지 확인했습니다!
저 같은 경우는 로컬에서는 잘 되는데 배포서버에서만 안되는거라
sentry 를 배포서버랑 연결해야하는거 같은데 제 방식이 잘못 됐는지 이제는 사이트들어가자마자 502를 배출하네요 이슈창에는 아무런 변화도 없구요
제가 한 방식은
로컬주소 대신 배포서버 주소 넣고
깃 푸쉬하고 aws Lightsail 들어간 담에 git pull 받기
nginx 껏다키기
이런식으로 했습니다.
base.py
DEBUG = False
# Application definition
ALLOWED_HOSTS = ["로컬주소"] > 로컬주소 대신 제 배포서버주소 넣었습니다.
sentry_sdk.init(
dsn="https://5d4cbbcff09656fd1ea28d4a74829561@o4506148641439744.ingest.sentry.io/4506148641505280",
# Set traces_sample_rate to 1.0 to capture 100%
# of transactions for performance monitoring.
traces_sample_rate=1.0,
# Set profiles_sample_rate to 1.0 to profile 100%
# of sampled transactions.
# We recommend adjusting this value in production.
profiles_sample_rate=1.0,
)
url.py
def trigger_error(request):
division_by_zero = 1 / 0
urlpatterns = [
path("sentry-debug/", trigger_error),
]
로컬서버 실행시키는
Python manage.py runserver
말씀하시는건가용...?