centos7 환경에 개발한 노드를 배포하려한다
노드가 서버에 기본적으로 설치되어있다는 가정하에 진행하겠다
파질라 (FTP)로 이미 연결되어있어 이것으로 배포 파일을 옮기겠다.
우선 리액트를 배포할건데 npm run build 명령어로 빌드할 수 있다.
build 파일안에 소스들을 배포하면 된다.
리액트는 NGINX으로 실행되도록 하였다.
아래 글을 참고하여 설치하고 실행하면된다.
https://catnails.tistory.com/423
리액트 앱(ReactJs)와 엔진엑스(Nginx) 연동
1. 서버에 노드 설치하고 버전확인 다운로드 및 설치 $ sudo apt install nodejs 버전확인 $ node -v 여기까지 잘 완료됐으면 노드 설치는 완료. 난 자꾸 이상한 오류가 나서 노드 홈페이지에서 압축 파일
catnails.tistory.com
이제 서버에서 node를 배포하고 실행하겠다.
package.json 와 실행할 node 파일들을 옮긴다.
npm install을 실행하면 package에 등록된 라이브러리를 해당 폴더에 설치시켜준다.
설치 후 실행 파일을 node ~.js 명령어를 실행하여 오류가 나는지 확인한다.
리액트, 노드 사이에 cors 정책으로 인해 방해되지 않도록 설정할 것이다.
NGINX 설정파일을 열어 아래와 같은 내용을 추가한다.
/api/~ 으로 접근을 허용한다는 설정이다
server {
listen 80;
location / {
root /usr/local/front-app;
index index.html index.htm;
try_files $uri $uri/ /index.htm;
}
location /api/ {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, DELETE, PUT';
add_header 'Access-Control-Allow-Headers' 'Content-Type, Authorization';
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, DELETE, PUT';
add_header 'Access-Control-Allow-Headers' 'Content-Type, Authorization';
return 204;
}
}
}
https://braindisk.tistory.com/40
nginx - 리버스 프록시로 스프링 CORS 문제 해결하기
이 글에서 설명하는 것 이 글에서는 CORS가 발생했던 이유와 원인을 다룬다. 또한 스프링 CORS 설정, Nginx 리버스 프록시 설정을 통해서 이를 해결하고 curl을 이용해서 CORS 문제가 해결되었는지 확
braindisk.tistory.com
만약 오류 없이 정상 실행되었다면, PM2으로 실행하게하여 서버가 껏다 켜져도 자동으로 켜지게 할 것이다.
pm2 start ~.js
오류 로그는 pm2 logs으로 확인할 수 있다.
'Web > Node.js & Nest.js' 카테고리의 다른 글
[nestjs] 식으로 호출된 경우 메서드 데코레이터의 서명을 확인할 수 없습니다. 런타임에서는 2 인수를 사용하여 데코레이터를 호출하지만 데코레이터에는 3이(가) 필요합니다.ts(1241) (0) | 2025.01.26 |
---|---|
[리팩토링 - Node] 타입스크립트로 마이그레이션하며 소스 정리(진행 중) (0) | 2025.01.04 |
createConnection이 8시간마다 끊기는 문제 (0) | 2024.09.17 |
[Node]Like문 쿼리 조회하기 (0) | 2024.09.15 |
Node Mybatis 연결 (0) | 2024.09.15 |