기본적으로 NCP에서 서버를 생성하고 putty를 통해 접속 한 후의 배포 과정은
서버 생성 시 application, nodejs 선택 후 생성 시 nvm이 설치된 상태로 설치가 됨
putty에서 서버 접속용 포트포워딩 ip 입력 후 port에는 허용 포트 번호 입력 후
root 계정과 관리자 비밀번호 입력 후 접속
nvm(노드 버전 매니저)가 깔린 상태의 리눅스 환경에 접속할 수 있다.
nvm list-remote
로 다운로드 가능 한 노드 버전들을 확인할 수 있다.
근데 나는 19.7버젼을 다운받으니까 계속 이후의 과정들이 진행되지 않아서 버전을 17으로 내렸음.
nvm install v17
다운로드 후에는
npm -v
node -v
입력해서 버젼을 확인한다.
버전 확인 후
npm install express
만약 버젼 안뜨면 리눅스 재접해보고 서버도 재가동까지 한번 해봐야..(재가동 때문에 된건지는 모르겠는데 재가동 하고 접속하니 버젼이 확인되었음)
배포 참고 링크
(이분은 aws를 사용했음)
그 후에는 git clone 으로 원하는 프로젝트를 클론 해온 후 해당 폴더로 들어가서
npm install
npm run build
를 하면 폴더에 build 파일이 생성된다.
vi server.js
파일 편집기를 열어준 후 i를 눌러서 insert모드 켠 후
const http = require("http");
const express = require("express");
const path = require("path");
const app = express();
const port = 8000;
app.get("/ping", (req, res) => {
res.send("pong");
});
app.use(express.static(path.join(__dirname, "build")));
app.get("/*", (req, res) => {
res.set({
"Cache-Control": "no-cache, no-store, must-revalidate",
Pragma: "no-cache",
Date: Date.now()
});
res.sendFile(path.join(__dirname, "build", "index.html"));
});
http.createServer(app).listen(port, () => {
console.log(`app listening at ${port}`);
});
이후에 server.js 파일을 구동해서 정상적으로 구동이 되면 된다.
sudo node server.js & // &는 nohup으로 돌린다는 뜻
나는 이래도 터미널을 끄니까 배포가 끊기길래 찾아보니 diswon 설정을 따로 해주어야 된다고 한다.
위의 코드 입력 후
disown -h
한번 더 입력하니 터미널을 꺼도 잘 돌아간다.
접속은 포트포워딩 ip가 아닌 공인ip:포트번호 의 형식을 입력하면 페이지가 뜬다.