pm2 사용하여 서버 실행 시 net::ERR_SSL_PROTOCOL_ERROR, net::ERR_CONNECTION_RESET 발생
본문 바로가기

Trouble Shooting

pm2 사용하여 서버 실행 시 net::ERR_SSL_PROTOCOL_ERROR, net::ERR_CONNECTION_RESET 발생

 
상황
localhost로는 잘 동작하는데, aws에서 배포한 페이지로 접속하면 개발자 도구 콘솔에서 net::ERR_SSL_PROTOCOL_ERROR, net::ERR_CONNECTION_RESET 에러가 번갈아 뜨는 상황
메인페이지가 띄워지긴 하는데, 로그인, 회원가입 등을 수행하려고 하면 안먹히는 상황

 
원인 분석
로컬과 클라우드 환경의 유일한 차이점은 로컬에서는 npm run 명령어로 바로 실행하였고, aws에서는 pm2 사용
client 만 pm2 사용하고 서버에서 npm run start:prod 했더니 페이지가 잘 동작했는데, 동시에 콘솔에서 에러를 확인할 수 있었음. 개발자 콘솔에서 떴던 GET 에러의 토글을 열어보면 anonymous 키워드가 있었는데 같은 에러를 확인

 
디버깅
server/src/middlewares/auth.ts를 확인해보니 res.locals.user가 정의되지 않으면 Error를 던지도록 구현됨
server/src/middlewares/user.ts를 보면 req.cookies.token을 확인하는 것을 알 수 있음
사이트에 접속했을 때 쿠키가 있으면 해당 정보로 로그인 하는 기능인데, 
쿠키가 없으면 유저 정보를 못가져와서, Unauthenticated 에러 발생
 
해결 방법
server/src/middlewares/auth.ts 에 작성된 유저가 없을 때 에러를 던지는 코드 제거했더니
콘솔에서 에러가 뜨지 않으며, pm2로 돌려도 잘 동작하는 것을 확인
 
알게된 점
pm2는 throw error가 발생하면 npm run 과는 다르게 프로그램 종료
서버에서 npm 명령어로 에러 메시지를 직접 확인해보기
 

'Trouble Shooting' 카테고리의 다른 글

AWS EC2 멈춤 현상 (메모리 이슈)  (3) 2024.09.02
CORS 에러 처리  (0) 2024.06.13
[DB] Docker Postgres 실행 시 permission error  (0) 2024.06.08