seminar-2020
seminar-2020 copied to clipboard
502 Bad Gateway
Nginx와 uwsgi를 연결하는 과정에서 문제가 생겨 올립니다.
Nginx 와 uwsgi를 연결하여 장고 서버를 배포했다고 생각했으나 실제로 들어가보니 위와 같은 에러가 발생하였습니다. Nginx error.log를 찾아보니 처음에는 200 connect() t.sock failed (2: No such file or directory)이었고, socket파일의 위치를 제가 잘못 설정해놓아서 였습니다. 제대로 소켓의 위치를 바로잡으니 해당 에러는 사라졌으나 502는 여전히 떴습니다. 다시 error.log를 보니 error: permission denied while connecting to upstream라는 에러가 떴고, 구글링을 해본 결과 nginx에게 권한이 없어서 해당 에러가 뜰 수 있다는 걸 알고 sudo chmod 666 waffle-backend_uwsgi.sock 을 통해 권한을 주어 해결하였습니다. 하지만 permision denied가 사라지고도 502가 떠서 다시 error.log를 찍어보니
111 connection refused라는 에러가 찍혔습니다. 여기서부터 막혔습니다. allowed host의 문제인가 하였지만, '*'을 추가해도 해당 에러가 그대로 떴고, 보안그룹에 현재 제가 쓰고 있는 ip도 올렸지만 해당 에러가 계속 떴습니다,..
아래는 ini 파일입니다.
아래는 conf 파일입니다.
#260 를 보고 카페 ip가 보안그룹에 포함되지 않았나 확인해보았지만 카페 ip를 보안그룹에 넣었습니당..
마지막 conf 파일에서 index.html이 생소한데 어떤 역할을 하나요?
저는 처음에 가상환경 폴더 주소가 세미나 했을때와 달라서 저의 환경에 맞게 수정해주고 나머지는 #260 에 적힌대로 했습니다. 혹시 권한에 관련해서는 /home/ec2-user 경로에 대해서도 했었던것 같은데.... 저도 확실치는 않습니다...
@whiteruby02 502 bad gateway 자체는 다른 모든 에러가 그런 것처럼 정말 다양한 문제로 발생할 수 있습니다. 이 시행착오를 해결해나가는 과정 자체가 배포의 일부이자 전체니까 힘내세요..! @YeonghyeonKO 이 말씀하셨듯이, 우선 단순 Django 서버를 uWSGI를 통해 배포하는 상황이라면 index index.html index.htm;
line 등이 들어가는 게 좀 생소하기는 합니다. 명시하신 경로에 index.html 등의 파일이 있기를 바라며 그곳으로 연결시키는 것인데, 구축하신 Django 서버 환경의 해당 경로에 99% 이상의 확신으로 저 파일이 없을 것 같습니다.(일반적으로 React 프로젝트를 할 때 요청을 받아 주는 시작점으로서 쓰이는 파일입니다.) 느낌상 뭔가 동적 배포와 정적 배포의 방식이 하나의 location block에서 합쳐진 그런 느낌..? 늘 그렇듯 유보적으로 말하자면 물론 여러 방법과 각 컴퓨터마다 설정이나 위치를 다르게 했을 수 있으니 정답은 없지만요.
뭔가 적어두신 location block의 index, try_files의 느낌은 React를 배포하는 것(혹시 제 블로그 글..?)을 그대로 따라하시면서 uwsgi 관련 설정과 혼합된 것이 아닌가 싶네요. Django 배포 위주로 구글링을 더 해보시고 3,4번째 세미나의 내용을 더 참고해보시는 것이 좋을 것 같습니다. 전부일 필요는 없어도 최소한의 의미를 알고 location block의 문법을 사용하시기 바랍니다. 그래야 문제가 생겼을 때 스스로의 힘으로 해결할 수 있습니다.
@whiteruby02 그리고 label 스스로 달아주세요. Triage 권한 초대 방금 한 번 더 보냈습니다!
@davin111 @YeonghyeonKO @canoneod 감사합니당.. 제갸 uwsgi ini 파일을 실행하지 않아 502가 발생하였습니다.. 다만 현재는 다시 interner server error 500이 떠서 다시 하는중입니다. 500은 error.log에 아무것도 찍히지 않고 구글링에서 나오는 방법을 해봤지만 해결되지 않아.. 그 전 에러들을 해결한다고 다른걸 건들여서 그런건지 잘 모르겠어서 제출기한이 얼마 남지 않아 다시 ec2를 파서 시작하려는 중입니다
@whiteruby02 너무 늦은 것 같아 이미 해결하셨을 것 같긴 한데, 혹시 migrate 하셨나요...? manage.py에서... 전 그것 때문이더군요...