[GCP] 구글 클라우드 플랫폼에 Nginx로 리액트 프로젝트 배포하기
도메인을 산지 4달이 됐는데 아직 배포를 안 했다. 그래서 배포를 해보려고 한다. 구글 클라우드 플랫폼에서 새 VM 인스턴스를 만들어준다. 리전 / 영역은 적당히 서울로... HTTP / HTTPS 트래픽을 허
r4bb1t.tistory.com

구글 클라우드 플랫폼에서 새 VM 인스턴스를 만들어준다.


리전 / 영역은 적당히 서울로... HTTP / HTTPS 트래픽을 허용해준다.

눌러서 콘솔 들어간다.
|
sudo apt-get update |
|
sudo apt-get upgrade |

물어보면 그냥 Y 해준다.
설치 끝.
|
sudo apt-get install nginx |
|
sudo systemctl enable nginx |
|
sudo systemctl restart nginx |
|
sudo systemctl status nginx |

잘 설치가 됐다는 뜻인 것 같다.
|
sudo apt install git |
|
git clone (깃 링크) |
깃을 설치하고, 배포할 프로젝트를 클론해온다.
|
cd ./(폴더이름) |
|
npm run build |
프로젝트 폴더 내로 들어가서 빌드해준다.
|
cd /etc/nginx |
|
sudo rm ./sites-available/default |
|
sudo rm ./sites-enabled/default |
sites-available과 sites-enabled의 default 폴더를 지워준다.
|
cd ./sites-available/ |
|
sudo vim myapp.conf |
sites-available에 파일을 만들어주고
|
server { |
|
listen 80; |
|
location / { |
|
root /home/(유저이름)/(폴더이름)/build; |
|
index index.html index.htm; |
|
try_files $uri $uri/ /index.html; |
|
} |
|
} |
입력한다.
listen 80은 포트 80을 의미한다.
location의 root에는 아까 설치한 프로젝트의 빌드 폴더를 넣고 index는 빌드 폴더에서 접근할 index.html 파일을 써준다.
try_files 줄에는 요청한 uri를 무시하고 index.html을 제공해주도록 설정을 해놓는다. 리액트 프로젝트 내에서 react-router-dom으로 라우팅을 해주는데, nginx에서 라우팅을 먼저 처리해버리면 문제가 생기기 때문이다.요청요청한 주소의 uri를 무시하고 index.html 파일을 제공한다한 주소의 uri를 무시하고 index.html 파일을 제공한
|
cd ../ |
|
sudo ln -s ./sites-available/myapp.conf ./sites-enabled/myapp.conf |
sites-enabled 폴더에 symbolic link를 만들어준다. (윈도우로 치면 바로가기 같은 것)
service nginx restart
그러면 접속이

이렇게 잘 되면 좋겠는데
...
사실 안되고😅 도메인을 .dev로 사버려서 (얘는 https로만 접속되는 도메인임) https 설정을 달아줘야 한다. 나는 클라우드 플레어로 간단하게 설정했다. 적당히 가입하고 도메인 구입처에서 네임서버를 클플로 바꿔주면 된다. 프리 플랜으로 무료로 설정했다. 그러면 잘 된다. 끝
Google Cloud Platform 에서 node.js 서버 세팅하기 :: Dev Ari
사실 어느정도 세팅이 되어있는 상태에서 쓰기때문에 양해 부탁드려요.
blog.devari.kr
Google Cloud Platform 에서 node.js 서버 세팅하기
사실 어느정도 세팅이 되어있는 상태에서 쓰기때문에 양해 부탁드려요.
1. 준비작업
Google Cloud Platform 에 가입하셔서 프로젝트를 만들어주세요.
서버가 있어야 진행이 되니까요 …?
아래와 같은 URL 로 들어가시면 VM인스턴스를 만들 수 있습니다.
https://console.cloud.google.com/compute/instances?project=[프로젝트명]

2. 인스턴스 만들기

이름은 자유롭게 지어주세요.
영역 부분입니다. 저는 서버를 미국에 뒀는데요, Facebook chatbot 작업을 할 거라서 그쪽에 뒀어요.
영역 참고자료 에 가시면 자세히 볼 수 있어요.
한국과 제일 가까운 서버를 선택하시려면 일본에 있는 asia-northeast1 를 선택하시면 됩니다.
머신 유형에서는 제일 작은 초소형을 선택했어요.
그렇게 많은 서비스를 돌릴것도 아니고 공부용이거든요 ㅎㅎ
부팅 디스크는 Ubuntu 로 사용하려고 Ubuntu 를 선택했습니다.
기타 설정들은 물음표를 눌러서 참고하시면 됩니다.
컴퓨터에 대한 어느정도 지식이 있으면 선택하기 쉬우실거에요 !
3. 인스턴스 접속

인스턴스 메인화면으로 나와서 연결 부분에 SSH 접속을 할 수 있어요.
다른방법으로 저는 맥에서 nodejs.command 라는 파일을 만들어서 사용합니다.
#!/bin/sh
gcloud compute --project "[프로젝트명]" ssh --zone "[영역]" "[계정]@[인스턴스 이름]"
으로 저장하면 바로 접속이 가능해요 !
4. 서버세팅
작업을 좀 쉽게하기 위해 슈퍼관리자로 변신합니다.
# sudo su
업그레이드
아래 두 작업은 시간이 좀 걸립니다.
그래도 업그레이드는 필수 !
# apt update
# apt dist-upgrade
nginX 설치
서버 작업을 위해 nginx 를 설치합니다.
# apt install nginx
node 설치
# apt install npm
n 은 node 의 버전을 쉽게 할 수 있는 프로그램입니다. n help 로 사용법을 볼 수 있습니다.
# npm install -g n
n ls 로 설치된 버전을 확인할 수 있습니다.
n lts 를 설치하고 안정버전을 설치합니다.
# n lts
-> install : node-v8.9.4
mkdir : /usr/local/n/versions/node/8.9.4
fetch : https://nodejs.org/dist/v8.9.4/node-v8.9.4-linux-x64.tar.gz
######################################################################## 100.0%
installed : v8.9.4
# n stable
-> install : node-v9.4.0
mkdir : /usr/local/n/versions/node/9.4.0
fetch : https://nodejs.org/dist/v9.4.0/node-v9.4.0-linux-x64.tar.gz
######################################################################## 100.0%
installed : v9.4.0
node -v 로 현재 설정된 버전을 확인할 수 있습니다.
# node -v
-> v9.4.0
5. nodejs 테스트
node 설치까지 완료되었으니 이제 테스트를 해볼까요 ?
node 입력 후 엔터를 치면 바로 사용할 수 있어요.
root@nodejs:/home/ubuntu# node
> console.log('test'); // 입력
test // 결과
undefined
> // 멈추고 싶을 땐 control + C 를 2번 입력합니다.
(To exit, press ^C again or type .exit)
>
root@ari-node:/home/ubuntu#

파일을 만들어 사용도 가능합니다.
# cd /home/ubuntu
# mkdir nodejs
# cd nodejs
# vi test.js
# i // vi 의 입력모드
# console.log('node.js');
# esc + :wq // 입력모드 종료 후 파일을 저장
# node test.js
root@ari-node:/home/ubuntu/nodejs# node test.js
node.js // 결과
여기까지 입니다 :)