502 Bad Gateway - nginx

Red_Panda·2021년 6월 10일
0

오늘 오랜만에 로컬에서 추가한 기능들을 aws 서버에 적용했다.
(이번에 추가된 기능에 대해서는 따로 정리할 것이다.)

그런데 여태 잘 들어가지던 url이 아래와 같이 메인페이지부터 안들어가진다.....

그래도 nginx가 문제인것 같아 nginx log를 확인했다.

unix:/tmp/myproject.sock failed (2: No such file or directory) while connecting to upstream, client: 내 IP, server: url주소, request: ">

log에 적힌 내용은 위와 같다. 파일 or 디렉토리가 없다고 하는데 정확히 뭐가 없다는건지 어떻게 해결해야 할지 알기 위해 구글링을 했다.

proxy_pass http://unix:/tmp/myproject.sock;

먼저 nginx 설정 파일에서 tmp를 run으로 바꿔라, app으로 바꿔라 등등이 많이 있었지만 tmp였어도 잘 실행되었기에 바꾸진 않았다.

그리고, log 디렉토리가 없는 경우 실행이 안된다는 내용을 찾았다. 실패~

아무리 검색해도 나에게 맞는 명확한 답을 찾지 못했다.

분명 잘 되었었는데, 코드를 업데이트 하면서 무엇인가가 꼬인게 분명하다.


그래서 lightsail 인스턴스를 삭제하고 처음부터 차근차근 다시 만들어갔다.

내가 생각한 문제점이 발생할 수 있는 부분

  • git에 업데이트한 새로운 코드 어딘가에서 오류
  • gunicorn 실행때 boot가 안됐었다. gunicorn 오류
  • nginx 오류

인스턴스를 다시 생성하고 세팅 후에 gunicorn, nginx 설치전 flask run을 실행했다.
업데이트한 내용도 잘 적용되었다.
git clone 파일들이 문제가 아닌 것을 파악할 수 있었다.

다음으로, gunicorn을 설치해 실행했다. boot도 성공~ 잘 켜졌다.

마지막으로 nginx를 설치해서 실행했다.
또 만났다 502 Bad Gateway
다시 구글링을 시작했다. 그런데 우연히 발견한 일본 사이트 질문에서 새로운 해결방법을 찾았다.

응용프로그램이 실행되지않은 상태에서 nginx를 실행하면 이렇게 된다는 내용이였다.
여기서 말하는 응용프로그램이 뭔지 생각해봤다. 잘 모르겠다.

그리고 갑자기 생각났는데, 이전에는 gunicorn을 실행했을때 오류가 났었다. 새로 만든 인스턴스에서도 해당 오류가 발생하는지 nginx 설치 후에 gunicorn을 실행해봤다. 다행히 이번에는 gunicorn이 실행된다. 페이지도 잘 뜬다. 분명 이전보단 뭔가가 나아졌다!

그런데 생각해보니, gunicorn을 실행하고 잘 접속되는지 확인했는데 접속 된다는 것은?! 어쩌다가 이놈의 502 bad gateway가 해결됐다.

위에서 말한 응용프로그램이 나의 환경에서는 gunicorn 아니었을까 라는 생각이든다.

해결하니 하루가 다 갔다. 그래도 해결했으니 잠은 잘 자겠다.

오늘의 결론 : nginx 실행전, gunicorn이 먼저 실행될 것.

profile
신입 개발자

0개의 댓글