문제상황 : Node.js + express로 개발된 웹 서버 환경 재구축
vm 폴더에 backend/backend/app.js 처럼 폴더 중첩 문제가 있어 하위 폴더 제거 후 git clone으로 상위에 하나 더 가져왔다. 그런데 세팅 전에는 불러와지던 이미지 파일들이 불러와지지 않았다.
어제의 영향으로 혹시 서버가 두 개 켜진걸까 하고 foreverlist , pm2list 등 확인해보았는데 하나만 제대로 동작하고있었다.
그리고 오류가 난 시점이 위(clone 이후)와 같다고 생각해서 그 시점에서 어떤 것을 빼뜨렸을까 고민했다.
- express.static 반영 확인
- monit 으로 확인했을 때 연결 확인
- forever list , pm2 list 로 서버 떠있는 목록 확인했고 express,back 외에 다른 서버 없는 것 확인
그런데 monit 으로 연결된 뒤 요청은 들어오지 않았다
Try)
try 1: proxy port 번호 맞춰주기
try 2: sudo nginx 점검
# 문법 오류 없음을 테스트
sudo nginx -t
# nginx 재실행 (재실행해야, 수정된 설정파일이 반영됨)
sudo systemctl reload nginx
# (참고) 만약 위 명령어가 안 되는 경우
sudo service nginx restart
try 3 : pm2가 상위/하위 등 어디서 start 위치의 영향 ? x
try 4 : pm2 log 확인 : 권한 오류
외 구글링으로 이것저것 시도해보던 도중 팀원분께서 502 Bad Gateway 오류가 나고있다는 것을 알려주셔서 도메인에 들어가서 확인해보았다. nginx를 처음 설치한 뒤에 가졌던 멘토링 시간에 코치님께서 nginx welcome ~ 안내문이 뜨면 port 80까지만 유입된거다 라고 말씀하셨던게 기억이 났다. 그런데 메인 페이지에 502 에러가 발생하는 것으로 보아 아예 nginx와 연동이 되고있지 않아서 발생한 문제였다는 것을 유추할 수 있었다!
서버는 이렇게 세팅된다는 것을 머릿속에 간직해두었다가 어떤 부분에서 멈춰있는지를 보면 좀 더 빠르게 찾을 수 있었을 것이다.
Sol ) nginx 를 상위 폴더에 재설치
sudo apt install nginx
상위 폴더로 가서 node, npm 등 잘 설치되어있는지 확인하고
1. sudo nano /etc/nginx/sites-available/default 로 프록시 - 포트번호 설정을 맞춰주었다
2. nano .env 로 port 번호 변경
이후 다행히 cors오류 도 없어지고 이미지도 업로드 되고있는 것을 확인할 수 있었다
너무 하위 설정에서만 원인을 찾고 있었다. 복구하는 데 1시간 걸렸는데 그사이에 팀원분들 원성이 빗발쳐서 식은땀났다ㅋ
코치님께서는 "다음에 또 그러면 service nginx status 로 nginx 올라와 있는지 확인도 한번 해주세요 "라고 말씀해 주셨다
1일 1 서버오류 ...ㅎ 우리팀 미안합니다 ㅎ
'Web > JavaScript' 카테고리의 다른 글
[Node.js] npm 의 대안 yarn berry 시작하기 (0) | 2024.03.06 |
---|---|
[Node.js] npm (Node package manager) : npm에는 왜 package.json 과 package-lock.json이 존재할까? (0) | 2024.03.05 |
[Node.js] Node.js는 논블로킹 비동기 방식으로 I/O를 처리한다 (0) | 2024.02.22 |
[Node.js] 런타임 / V8 /이벤트 기반 아키텍처/ K6 (0) | 2024.02.22 |
[TypeScript] TSError: ⨯ Unable to compile TypeScript: Operator '+' cannot be applied to types 'T' and 'T' (0) | 2023.10.18 |