프로젝트/북극팽귄 프로젝트

라즈베리파이를 이용한 웹 서버 구축 (3) - 배포

58청춘 2024. 10. 25. 14:23
728x90

이전 시간에는 라즈베리파이(이하 라파)에 DB(MariaDB)를 연결했다.

 

이제 nodejs를 설치하고 React 애플리케이션을 배포해보도록 하자.

 

NodeJS 설치

NodeSource의 레포지토리를 이용해 최신 버전의 Node.js를 설치할 수 있다.

curl -sL https://deb.nodesource.com/setup_20.x | sudo bash -

 

위의 코드에서 setup_[숫자].x 의 숫자는 설치하고자 하는 Nodejs의 버전을 의미하며 이 글 아래에서는 Nodejs 버전을 업그레이드 혹은 다운그레이드 하는 방법을 정리할 것이다.

 

이제 Nodejs를 설치해보자.

sudo apt install nodejs

 

설치가 끝났다면 설치된 Nodejs의 버전을 확인해보자.

node --version

 

 

pm2를 이용한 무중단 배포

노드는 foreground process이기 때문에 터미널이 꺼지게 되면 서버또한 꺼지게 된다. 이러한 문제는 지속적인 웹 서비스를 제공하는데에 어려움이 있는데, 이 점을 관리해주는 것이 PM2이다. 서버가 에러로 인해 꺼졌을 때 다시 켜주는 것 이외에도 클러스터링 혹은 멀티프로세싱 기능도 지원한다.

 

PM2를 활용한 Node.js 무중단 서비스하기

이 글은 마이크로소프트웨어 393호에 기고된 글입니다. 자바스크립트는 가장 널리 사용되는 클라이언트 측 프로그래밍 언어이자 프론트엔드 웹 개발 언어 중 하나입니다. 그리고 Node.js는 Chrome의

engineering.linecorp.com

 

sudo npm i pm2 -g

 

설치가 끝나면 배포하고자 하는 프로젝트를 깃허브에서 가져와보자.

git clone "repo주소"

 

이제 가져온 프로젝트의 프로퍼티로 이동후 pm2를 활용해 실행해보자.

 

CRA를 이용한 프로젝트는 아래의 명령어

$ pm2 start node_modules/react-scripts/scripts/start.js

 

만약 위의 명령어가 실행되지 않으면 아래의 명령어를 실행해보자.

$ pm2 start npm -- start

 

백엔드(Node혹은 Express)의 경우는 아래의 명령어로 실행하자.

$ pm2 start ./bin/www

 

 

PM2에서 자주 사용되는 명령어는 필요에 따라 아래의 글에서 확인하자.

 

[#. PM2] PM2 이용해서 백그라운드에서 NODE/REACT 무중단 실행하기

https://pm2.keymetrics.io/ PM2 - Home Advanced process manager for production Node.js applications. Load balancer, logs facility, startup script, micro service management, at a glance. pm2.keymetrics.io ① pm2 설치(전역) $ sudo npm install pm2 -g ②

developer0809.tistory.com

 

728x90