Error

[Error] Nginx 502 Bad Gateway 에러 해결 방법 (13: Permission denied, 111:unknown error)

Codest 2022. 10. 5. 14:50

안녕하세요. 오늘은 AWS 배포를 하다 보면 자주 만나게 되는 Nginx 502 Bad Gateway 에러 해결방법 두 가지에 대해 알아보겠습니다. 502 에러가 발생하는 이유는 매우 매우 다양하기 때문에 제 방법을 사용하더라도 에러가 해결되지 않을 수 있음을 미리 말씀드립니다. 

 

보기만 해도 너무 화가 나는 사진입니다...

우선 저 에러가 발생하면 nginx error log를 확인하는 습관을 들이셔야 합니다.

log를 보면 에러 발생 이유가 나와있기 때문에 대부분 해결 가능합니다.  

 

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

 

위의 명령어로 error log를 확인할 수 있습니다.

 

error.log 파일의 위치는 nginx.conf 파일에 Logging Settings 부분에 있습니다.

 

 


1. uwsgi.ini 폴더 경로 잘못 입력했을 경우

 

 

사진을 확대해보시면 코드가 보이는데 3번째 줄에 unix:/home/ubuntu/uwsgi.sock과 연결하는데 실패했다고 나옵니다. 두 번째 줄에는 upstream 이하에는 mac_automl 폴더에 uwsgi.sock가 있다고 나오는데 둘이 다르니 이 경로에 문제가 있는 것을 파악했습니다.

 

 

uwsgi.sock은 mac_automl 폴더에 있는 것을 볼 수 있습니다. 그럼 unix: 이하 경로를 잘못 적은 것입니다. nginx.conf에 들어가 보니 경로 중간에 mac_automl을 빼고 적었네요. 올바르게 수정해줍니다.

 

 

수정했다면 이제 nginx와 uwsgi 서버를 재시작해줍니다.

 

sudo systemctl restart nginx
sudo systemctl restart uwsgi

 

위의 문제가 맞았다면 재시작 후 사이트가 정상적으로 동작할 것입니다.

문제가 해결되지 않았다면 nginx.conf / sites-enabled 내 default / uwsgi.ini / uwsgi.service 파일의 경로를 다시 한번 꼼꼼히 확인해보시기 바랍니다.

 


2. nginx.conf user 권한 문제

 


Permission denied 에러가 발생했을 경우에는 user 권한 문제가 대부분 일 것입니다. nginx.conf 파일을 실행해서 user www-data; 부분을 user root;로 변경해줍니다. root(관리자) 권한으로 nginx를 실행하도록 설정하는 과정입니다.

 

 

수정을 마쳤다면 다음 명령어로 서버를 재시작해줍니다.

 

sudo systemctl restart nginx
sudo systemctl restart uwsgi

 

권한 문제가 맞았다면 사이트가 잘 동작할 것입니다.

감사합니다. 더 좋은 포스팅으로 다시 찾아뵙겠습니다.

 

중간에 꼬여서 배포를 올바른 방법으로 다시 하고 싶으시면 제 AWS 배포 시리즈를 참고해주시기 바랍니다.

 

[AWS] 장고 프로젝트 배포하기 (1) AWS 계정 생성, EC2 인스턴스 생성

 

[AWS] 장고 프로젝트 배포하기 (2) SSH 접속, 패키지 설치, GitHub 연동

 

[AWS] 장고 프로젝트 배포하기 (3) WS와 WSGI 그리고 WAS / Nginx와 uWSGI 연동하기

 

 

반응형