만쥬의 개발일기

Nginx로 웹서버를 구성한 프로젝트를 진행 중 끔찍한 에러를 만났다.

바로 502 Bad Gateway (nginx/1.8.2) 라는 페이지만 보이고, 아무 화면도 보이지 않았다.

 

인터넷에는 다양한 해결법이 있어서 여러가지 시도를 해보았는데, 다음 방법들이 있었다.

 

Nginx 502 Bad Gateway가 뜨는 근본적인 문제는 대부분 Nginx가 가리키는 포트에서 서버가 정상적으로 동작하지 않을 때인데, 로그를 반드시 잘 확인해봐야 한다.

 

sudo tail -f /var/log/nginx/error.log

터미널에 위 명령어를 입력해 에러 내역을 확인하고, 자신에게 맞는 해결법을 적용하자.

 

인터넷 서핑을 하면서 찾아본 해결법들을 정리해보겠다.

nginx.conf 파일 수정 (실패)

sudo nano /etc/nginx/nginx.conf

명령어를 통해 nginx.conf 파일로 들어간 뒤,

user www-data; 를 user ubuntu; 로 바꿔주는 방법이다.

sites-enable파일의 프록시 버퍼 늘리기 (실패)

sudo nano /etc/nginx/sites-enabled/default

위 명령어로 nginx의 포트 설정 파일로 들어가서

 

location/ 부분에

    proxy_buffer_size          128k;
    proxy_buffers              4 256k;
    proxy_busy_buffers_size    256k;

위 내용을 추가한다. 이는 프록시 버퍼를 늘려주는 작업이다.

 

성공한 방법

나의 경우는 다양한 에러가 떴었지만, 마지막에는 

Nginx 502 error, connect() to unix:///tmp/uwsgi.sock failed (13: Permission denied) while connecting to upstream

위 에러가 떴는데, Permission이라는 말때문에 chmod로 여러 옵션을 줘봤지만 번번히 실패하고,

 

결국 /tmp/uwsgi.sock파일을 삭제하자 해결됐다.

알고보니 이전 서버를 강제종료 할 경우 소켓 파일이 정상적으로 삭제되지 않아서, 이전 서버 소켓파일이 남아있기 때문에 해당 에러가 발생하는 것이라고 한다.. 내 3일이 가치있었기를

 

reference

https://codest.tistory.com/21

https://velog.io/@seochan99/AWS502-Bad-Gateway-nginx1.18.0-Ubuntu%EC%97%90%EB%9F%AC-%EB%9C%B0%EC%8B%9C

https://github.com/tiangolo/uwsgi-nginx-flask-docker/issues/119

profile

만쥬의 개발일기

@KangManJoo

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!