묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결비전공자를 위한 풀스택 맛집지도 만들기 프로젝트!: Front, Back-end 그리고 배포까지
PM2 EADDRINUSE 에러
강의 보면서 PM2 배포를 따라해보았습니다. 5999번 포트를 사용했고, 몇 번 API 요청을 하면 EADDRINUSE 에러가 뜹니다. 0|index | Error: listen EADDRINUSE: address already in use :::5999 0|index | at Server.setupListenHandle [as listen2] (node:net:1872:16) 0|index | at listenInCluster (node:net:1920:12) 0|index | at Server.listen (node:net:2008:7) 0|index | at Function.listen (/home/ubuntu/hyerim-resume/server/nodemodules/express/lib/application.js:635:24) 0|index | at Object.<anonymous> (/home/ubuntu/hyerim-resume/server/index.js:6:11) 0|index | at Module._compile (node:internal/modules/cjs/loader:1376:14) 0|index | at Module._extensions..js (node:internal/modules/cjs/loader:1435:10) 0|index | at Module.load (node:internal/modules/cjs/loader:1207:32) 0|index | at Module._load (node:internal/modules/cjs/loader:1023:12) 0|index | at Object.<anonymous> (/home/ubuntu/.nvm/versions/node/v21.2.0/lib/node_modules/pm2/lib/ProcessContainerFork.js:33:23) { 0|index | code: 'EADDRINUSE', 0|index | errno: -98, 0|index | syscall: 'listen', 0|index | address: '::', 0|index | port: 5999 0|index | } 이 에러가 이미 사용중인 포트로 실행하려고 하는 문제라고 해서 매번 sudo lsof -i :5999, sudo kill -9 ~~ 로 서버를 껐다 키면 또 금방 해당 에러가 발생합니다. sudo lsof -i :5999 로 실행중인 프로세스를 확인하면 다음과 같습니다. COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME node\x20/ 1396 root 25u IPv6 451174 0t0 TCP ip-172-31-39-74.ap-northeast-2.compute.internal:5999->121.143.65.200:56521 (ESTABLISHED) node\x20/ 1396 root 26u IPv6 20785 0t0 TCP *:5999 (LISTEN) node\x20/ 1396 root 30u IPv6 451237 0t0 TCP ip-172-31-39-74.ap-northeast-2.compute.internal:5999->121.143.65.200:56645 (ESTABLISHED) Mac M2 로 서버에 접근해서 PM2를 실행하는데, Mac에서 AirPlay 모드를 꺼야 한다는 Stack Overflow 내용도 보고 꺼봤지만 역시나 에러가 뜹니다. pm2 start index.js —watch 로 pm2 인스턴스를 실행했더니 몇번 재시작을 자동으로 해주는 것 같지만 결국 재시작이 너무 잦다며 더이상 재시작이 되지 않는 것 같아요. 해결 방법이 궁금합니다 ㅠㅠ 아래는 제 서버의 package.json, index.js입니다. Package.json{ "name": "server", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "start": "node index.js" }, "author": "", "license": "ISC", "dependencies": { "compression": "^1.7.4", "cors": "^2.8.5", "express": "^4.18.2", "jsonwebtoken": "^9.0.2", "method-override": "^3.0.0", "mysql2": "^3.6.3", "nodemon": "^3.0.1", "socket.io": "^4.7.2", "winston": "^3.11.0", "winston-daily-rotate-file": "^4.7.1" } } index.jsconst express = require("./config/express"); const { logger } = require("./config/winston"); //log const port = 5999; express().listen(port); logger.info(`API Server Start At Port ${port}`);
-
미해결Nuxt.js 시작하기
리눅스 도커 환경 배포 시 스택 문의
안녕하세요. 게시판 형태의 nuxt 앱 배포환경을 고민하고 있습니다.백엔드 API 서버들은 온프레미스 서버(사무실 서버)와 클라우드에 분산되어 있고, SSR에 따른 SEO와 로딩 속도와 같은 장점을 기대하고 Nuxt로 개발 중입니다.선택지는 다음과 같지만, 2번이 우세한 상황입니다.vercel과 같은 SSR을 지원하는 PaaS를 사용하여 배포리눅스 서버 위 도커 컨테이너로 배포2번을 고려하고 있는 이유는 비용상의 문제보다는 성능과 기능 구현 때문에 고려하고 있습니다(Nginx에서 특정 ip 차단, pm2 프로세스 관리, 동일 서버에 올라간 백엔드 API 컨테이너와 유닉스 소켓으로 연결 등). 또한, 아마 다른 서비스에서 조만간 쿠버네티스를 도입할 것 같아 미래를 고려하는 점도 있습니다. 리눅스 도커 환경에 직접 배포할 때, 도커를 사용하는 부분은 문제가 없으나 스택을 어떻게 구성해야 할지 문의드립니다.간단하게 찾아본 결과 Nginx + pm2 + node(nuxt) 구조에서 각 서비스가 빠지거나 포함되는 것 같은데, 서로 충돌하는 의견이 많은 것 같아 혹시 추천해주실 수 있는 스택이 있는지 문의드립니다. Nginx : 정적 컨텐츠와 빠르고 편리한 https(TLS), 리버스 프록시를 통한 보안과 속도 때문에 필요함. node로도 해당 기능들이 모두 가능하니 필요 없다는 주장도 있으나, 웹서버 점유율에서 node.js가 1~2%라는 자료들에 의하면 의구심이 듦.pm2 : 로그와 프로세스를 편리하게 관리하기 위해서 필요하다는 의견이 많으나, 도커 기반 환경에서는 오히려 도커나 k8s가 프로세스나 로그를 관리하는 것을 방해한다는 의견(https://www.docker.com/blog/keep-nodejs-rockin-in-docker/ )도 있음. 일단 현재는 docker-compose로 Nginx-pm2-node(nuxt) 형태로 개발하고 있습니다. 아마 네카라쿠배에서는 이런 부분이 인프라나 DevOps 쪽으로 분업되어 있어 강사님께서 이런 고민은 생소하실 수도 있겠다는 생각이 들지만, 저 말고도 타의로 프론트엔드를 시작한 분들이 있을 수 있겠다는 생각이 들어 올려봅니다 : )
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
제로초님 너무 답답하여 질문드려요ㅠ
제로초님 안녕하세요 고민을 몇시간쨰 해보고 있는데 해결을 못하겠어서 처음으로 글을 올려봐요ㅠㅠㅜ 노드버드 하기전에 배포프로세스를 익히고자 CNA로 테스트 레포를 만들고 따라하고 있었는데요 그냥 sudo yarn start로 했을 때는 잘되서 ip 주소로도 접속이 가능한데 이런 에러가 나는데 왜이러는걸까요??ㅠ
-
미해결Slack 클론 코딩[백엔드 with NestJS + TypeORM]
pm2 질문입니다.
nest에 pm2 사용 중입니다. 로그에 텍스트 색 비활성화 하는 방법 알고 싶습니다. tail 로 볼 때는 좋은데 에디터로 보면 ^[[32 ^[[39 같은 문자들이 섞여 있어 로그 보기가 힘듭니다.
-
미해결Slack 클론 코딩[백엔드 with NestJS + TypeORM]
도커 사용시 pm2사용
안녕하세요! 현재 docker를 사용해서 nest 앱을 ec2에 배포하고 있습니다. docker사용시에는 pm2 사용할 필요가 없나요?? ec2터미널 껐을때 서버가 죽는 것같아서 질문드립니다 ㅠ
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
EADDRINUSE: address already in use 0.0.0.0:3060
안녕하세요, 강의 잘 듣고 있습니다. 프론트 서버를 ec2에 배포하고, pm2 설치한 후에 $sudo npx pm2 start npm -- start 를 하였더니 3060포트가 이미 사용중이라는 에러가 나옵니다. $sudo lsof -i tcp:3060 으로 나오는 pid -> $sudo kill -9 (pid) 를 해도 계속 다른 pid로 생성이 되어서 $sudo npx pm2 kill $pm2 kill $root> sudo kill -9 pid 우분투계정, 루트 계정 모두 pm2 kill, pid kill을 해봤는데 어디서 자꾸 다시 생성이 되는지 감을 잡기 어려워서 질문드립니다. 어떻게 해야 할까요??
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
사이트에 연결할 수 없음
안녕하세요 제로초님 pm2 사용하기 파트 후부터 페이지가 작동하다 연결할 수 없다고 뜨는데 terminal 창에는 정상적으로 작동하는 것 같은데 어떤게 문제일지 모르겠어서 질문드립니다. back에서의 package.json app.js npm start 실행시 결과