[React] Nginx를 사용해서 배포하기

2022. 12. 10. 13:44·React/실험실
반응형

React 프로젝트를 만들고 이제 배포를 하는 작업이 필요하다.

여러가지 방법이 있겠지만 역시 가장 만만한건 Nginx가 아닐까 생각된다. 

 

Naver Cloud에 Nginx를 사용해서 배포하는 작업을 진행할 것이다. 

 

환경 정보 

Server : Naver Cloud

os: 우분투 20

 

서버를 만드는 작업은 이전에 작성한 글이 있기 때문에 그것을 참고하길 바란다!

그리고 기본적으로 배포할 React 프로젝트가 있다는 것은 전제로 진행하겠다. 

필요 파일 설치

apt install npm

npm이 서버에 설치되어 있지 않을 것이기 때문에 설치해준다. 

 

apt install nginx

마찬가지로 nginx도 설치되어 있지 않기 때문에 설치해준다. 

패키지 가져오기 

뭐 별거 없다. 

깃허브에 저장되어 있는 Repo를 클론으로 받아왔다. 그 후 npm i 명령어를 통해서 필요 패키지를

다운받아 줬다. 

 

다운이 끝나면 build 명령어를 통해서 Nginx에 배포할 빌드 파일을 만들어준다.

Nginx 설정

이제 Nginx를 설치하면서 생성된 기본 설정을 지우고 새로 작성할 것이다. 

삭제하는 이유는 우리가 새롭게 만드는 설정과 겹칠 수 있기 때문이다. 

rm /etc/nginx/sites-available/default
rm /etc/nginx/sites-enabled/default

 

이제 새롭게 설정 파일을 작성한다. 

// cd /etc/nginx/sites-available/deploy.conf
server {
  listen 3000;
  location / {
    root /home/auto-deploy/build;
    index index.html index.htm;
    try_files $uri $uri/ /index.html;
  }
}

listen : 원하는 포트 번호를 설정한다. 

location / : URL이 ' / '이 포함된 경로를 설정한다는 뜻이다. 

root : 실행할 파일의 루트 위치를 나타낸다. 즉, 빌드 파일의 경로를 설정하면 된다. 

index : 인덱스 파일을 지정하는 것이다. 이것은 반드시 root 경로 안에 포함되어야 한다.  

try_files : 특정 파일을 찾을 때 명시된 순서대로 찾으며, 발견 시 해당 파일을 사용한다. 

 

설정이 끝났다면 

ln -s /etc/nginx/sites-available/myapp.conf /etc/nginx/sites-enabled/myapp.conf

원본 설정파일의 심볼릭 링크를 설정해준다. 

웹서버가 동작될 때 sites-enabled에 있는 설정파일을 참조한다. 

 

이제 끝이다. 

systemctl stop nginx
systemctl start nginx

서버를 재시작 후 url을 접속하면 배포된 사이트를 확인할 수 있다!

반응형
저작자표시 비영리 변경금지 (새창열림)

'React > 실험실' 카테고리의 다른 글

[React] React-Query - useQuery  (0) 2022.12.13
[React] Docker Nginx React를 사용해서 배포하기  (0) 2022.12.12
[React] React-Query - Dev Tools  (0) 2022.12.01
[React] Library vs Framework  (0) 2022.11.29
[React] MSW  (0) 2022.11.24
'React/실험실' 카테고리의 다른 글
  • [React] React-Query - useQuery
  • [React] Docker Nginx React를 사용해서 배포하기
  • [React] React-Query - Dev Tools
  • [React] Library vs Framework
잉여개발자
잉여개발자
풀스택 개발자를 목표로 잉여롭게 개발 공부도 하면서 다양한 취미 생활도 즐기고 있는 잉여 개발자입니다.
  • 잉여개발자
    잉여로운 개발일지
    잉여개발자
    • 분류 전체보기 (789)
      • 개발정보 (36)
      • 개발환경 (7)
      • 개발생활 (19)
      • React (141)
        • 이론 (23)
        • 기능 (12)
        • 실험실 (88)
        • 버그 (6)
        • 패스트캠퍼스 (9)
        • Npm (3)
      • React Native (28)
        • 공통 (6)
        • TypeScript (3)
        • JavaScript (18)
        • 버그 (1)
      • Next.js (30)
        • 이론 (13)
        • 실험실 (13)
        • 버그 (3)
      • Web (35)
      • 알고리즘 (202)
        • 풀이 힌트 (39)
      • JavaScript (47)
      • TypeScript (29)
        • 기초 (27)
        • 실험실 (2)
      • Node.js (13)
        • 이론 (0)
        • 기능 (3)
        • 실험실 (9)
        • 버그 (1)
      • 도커 (4)
      • CCNA (22)
        • 이론 (4)
        • 문제 (18)
      • 취미생활 (167)
        • 잉여로운 칵테일 (2)
        • 잉여의 식물키우기 (130)
        • 잉여로운 여행기 (11)
        • 잉여의 제2외국어 (21)
        • 잉여로운 책장 (2)
      • Java (1)
        • Java의 정석 (1)
      • 꿀팁 공유 (3)
  • 태그

    Docker
    덤프
    typescript
    프로그래머스
    react
    영어독학
    알고리즘
    next.js
    영어회화
    리얼학습일기
    webpack
    타입스크립트
    타일러영어
    Node.js
    ChatGPT
    CSS
    네트워크
    Babel
    바질 키우기
    바질
    다이소
    redux
    자바스크립트
    네이버 부스트캠프
    리액트
    CCNA
    javascript
    리얼클래스
    식물
    ReactNative
  • hELLO· Designed By정상우.v4.10.1
잉여개발자
[React] Nginx를 사용해서 배포하기
상단으로

티스토리툴바