본문 바로가기
개발일기/리액트,Next.js

[Centos7 + NodeJS]/ Centos에 NextJS기반 React 배포(웹사이트 서버에 올리는 방법)

by 프로그래머콩 2022. 1. 6.

- 준비물 : Centos7, 완성된 React + NectJS 기반 결과물


개요

  • centos7, node 16설치
  • 도메인 연결
  • front port 3000연결 (80으로 들어오는 포트 3000으로 우회하기
  • pm2 사용해서 node 무중단 프로세스 만들기

 

centos에 yarn 설치 (선택)

curl --silent --location https://rpm.nodesource.com/setup_10.x | sudo bash -
 

node설치

$sudo yum install nodejs

 

버전 확인

$node --version
$npm --version

 

 

git 설치, clone

$cd /home
$mkdir pieauction
 
$cd pieauction
 
$yum install git
 
(PW : scvwqCaH6PLnsJKrZeab )
 
 

clone받은 프로젝트 폴더

pie-auction-front에서 작업진행

$cd pie-auction-front
 

package 파일읽어 라이브러리 설치하기 npm install

$ npm install
 

도메인 setting

vi .env.production
 
(아래 내용 작성 후)
NODE_PATH=src/
REACT_APP_API_ROOT="https://www.domain.com:3000"
REACT_APP_HOME_URL="https://www.domain.com"

 

(esc)
 
:wq!
 
(enter)
 
 

env파일 적용 위한 env-cmd 설치

$npm install env-cmd
 

package, build path 세팅

vi package.json
 

("build"부분 찾아 아래처럼 변경 후)

"build": "react-scripts build",
 
(esc)
 
:wq!
 
(enter)
 

 

방화벽 셋

$ `sudo iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3000`
 
 

배포 및 시작

$npm build
$npm start
 

무중단 배포를 위한 (npm)툴 설치

$ npm install pm2 -g
 

pm2 프로세스 설정하기

$ pm2 start npm --name "nsmanager" -w -i max -- start
 
 
  • -w 는 파일의 변경이 생길 때 재시작 하는 옵션이라고 한다.
  • -i max 는 클러스터모드라고 하는데 잘 모르겠다 아직.
  • --name 은 말 그대로 이름 붙여주는 것.