NodeJS 서버를 Windows에서 Linux VPS로 이동

NodeJS 서버를 Windows에서 Linux VPS로 이동

2022-10-19 last update

5 minutes reading linux windows node ubuntu
최근에 우리는 서버 중 하나에서 하드 드라이브의 충돌을 경험했습니다. RAID 덕분에 데이터가 손실되지는 않았지만 이 사건은 NodeJS 기반 챗봇을 신뢰할 수 있는 클라우드 제공업체의 VPS 서버로 옮기는 데 큰 원동력이 되었습니다. 항상 시간이 부족하기 때문에 챌린지는 1시간 안에 맞추도록 설정되었습니다. Linux에 대한 기본 지식만 있는 완전히 Windows 사용자이기 때문에 작업이 악화되었습니다. 거의 모든 명령을 구글링해야 합니다. 심지어 ls . 나 장난하는 거 아니야.

첫 번째 단계는 NodeJS를 설정하는 것이었습니다. 명백한 apt install nodejs 안정적이지만 고대 버전 12.x를 얻었습니다. 인터넷으로 눈을 돌려 Snapcraft 애플리케이션 스토어에 대해 배웠습니다. NodeJS를 설치하기 위한 snap 명령이 있습니다. 이는 비용이 많이 드는 실수로 판명되었습니다. 스냅이 새로운 프로세스를 확장하는 PM2의 기능을 어떻게든 중단한다는 사실을 깨닫기 위해 할당된 시간의 절반을 놓쳤기 때문입니다.

결국 최신 버전을 다운로드하여 설치하라는 명령을 찾았습니다. 그러나 Windows 관점에서는 발음하기 어렵습니다.

curl -sL https://deb.nodesource.com/setup_18.x | sudo -E bash -
apt install nodejs


그런 다음 우리가 선택한 패키지 관리자인 Yarn이 나타났습니다.

npm install -g yarn


챗봇의 전체 폴더는 압축되어(node_modules 제외) FTP를 통해 전송되고 압축이 풀렸습니다. 시스템 환경 변수를 dotenv 패키지 및 .env 텍스트 파일로 교체하려면 약간의 수정이 필요했습니다.

Windows와 Linux 줄 끝이 다르기 때문에 git은 이를 무시하라는 지시를 받았습니다.

git config --global core.autocrlf true


Windows에서는 시스템 시작 시 챗봇 서버를 시작하기 위해 시스템 작업 스케줄러를 사용했습니다. 여기에서 PM2 프로세스 관리자가 도움을 제공합니다. yarn start 명령으로 강제로 작동시키려고 했지만 헛된 시도를 빨리 포기하고 대신 컴파일된 JS를 호출하는 것으로 후퇴했습니다.

pm2 start dist/server.js --name chat-bot --watch


이상하게도 두 NodeJS 서버 중 하나가 --watch 플래그로 작업을 거부했습니다. 나는 문제에 뛰어들 시간이 충분하지 않았고 그냥 프로젝트를 보는 것을 껐습니다. 어쨌든 자주 업데이트되지는 않습니다.

언제든지 발생할 수 있으므로 VPS 재부팅 시 프로젝트를 자동으로 시작하는 것을 잊지 마십시오.

pm2 startup


그게 다야 Windows에서 Linux로 NodeJS 서버를 전송하는 것은 그리 어렵지 않고 길지 않은 것으로 나타났습니다.