Notice
Recent Posts
Recent Comments
Link
«   2025/03   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
Archives
Today
Total
관리 메뉴

열정, 근면, 성장

가상환경 uwsgi와 전역 uwsgi 관련 에러 본문

코딩/디버깅

가상환경 uwsgi와 전역 uwsgi 관련 에러

수빈박 2023. 5. 9. 16:35

1월에 처음 배포를 시도한 후로부터 systemctl status uwsgi 커맨드를 칠 때마다 아래와 같은 에러가 뜨면서 무한 재시작이 됐다. 그리고 그와 동시에 배포된 웹사이트 접속에는 문제가 없었다.

 

(PID 크기가 엄청 크다.)

 

 

 

몇개월에 걸쳐서 어느 정도 해결한 것 같다. 

-----------------

클라우드: AWS EC2 프리티어(RAM 1GB, 스토리지 30GB)

서버: Linux Ubuntu

웹 프레임워크: Django

uwsgi - nginx

------------------

 

 

 

 

 

 

1. 프로젝트 venv의 uwsgi를 사용한다면 전역 uwsgi는 꺼야한다.

source venv/bin/activate

했다면 전역 uwsgi는 쓸 일이 없다.

 

 

 

그러나 아래 커맨드를 친다면

systemctl start uwsgi

 

이미 uwsgi -i uwsgi.ini 커맨드로 프로젝트 가상환경의 uwsgi로 웹사이트가 구동이 되고 있는데 전역에서 uwsgi를 또 시작하는 거라서 에러가 뜬다.

 

 

 

 

해결 참고)

 

uWSGI Failed with result 'protocol' 에러 해결

uwsgi.service: Failed with result 'protocol'의 에러에 97만번 정도 빠졌다. process 옆에 있는게 아마... 에러 문장을 아무리 구글링해봐도 이 에러는 별로 없어서 고전했었는데 이렇게 에러가 계속 나는데 어

growing-sub.tistory.com

 

 

 

 

 

 

2. 프로젝트 venv의 uwsgi만 사용한다면 uwsgi.service가 필요없다.

동일한 논지다. uwsgi.service는 전역 uwsgi를 사용할 때 필요하기 때문에... 수정해봤자 프로젝트 uwsgi에 아무 영향을 주지 않는다. 쓰지 않을 거라면 삭제해버리는 게 낫다.

 

 

 

나의 경우, 전역 sudo apt-get remove uwsgi를 통해 전역 uwsgi를 삭제했음에도 불구하고 status를 확인하면 내역이 떴다.

 

이 디버깅 과정들을 통해, 전역 uwsgi 삭제 후 uwsgi.service만 남겨놓은 채 sudo systemctl start uwsgi를 실행하면 제일 위의 사진과 같이 protocol 에러가 뜨는 것을 깨달았다.

 

 

 

 

uwsgi.service 삭제하기

sudo rm /etc/systemd/system/uwsgi.service

 

더 이상 보지 말자

 

 

 

3. 메모리 문제

uwsgi가 혼자 restart 되고 난리나는 동안, 하루에 끽해야 5명 들어올 사이트가 여러 번 터졌다.

htop 커맨드를 통해 활성화된 프로세스를 확인해보니 어디서 문제가 발생하는 지 확인하기가 더 쉬웠다.

동시에 한 20개가 돌아가고 있던데 하나하나 kill 했다.

 

그러고도 메모리가 여유가 없다면 swap을 하는 것도 한 방법이다.

Comments