인스턴스를 빌리고 깃에서 프로젝트를 받아오는 과정은 생략한다.
yarn build
sudo mkdir /var/www/front_build
*꼭 저기다가 생성안해도 된다
// 프로젝트 경로가 ~/myapp일 경우
sudo cp -r ~/myapp/build/* /var/www/front_build
*이후 react 프로젝트를 수정하였다면, 1, 2번에서 생성한 폴더를 지우고 part1을 다시 시작해야한다.
도메인 구입
ec2 탄력적 ip 할당하기
aws route53 > 호스팅 영역 생성 > 구입한 도메인 입력
도메인 구입 사이트에서 aws의 ns '값/트래픽 대상' 값 4개 복사(마지막에 .은 복사하면 안됨) 후 도메인을 구입한 사이트의 DNS 설저에서 네임서버 변경하기
aws route53에서 생성한 호스팅 영역에서 레코드 생성 버튼 클릭 후 값 란에 ec2의 탄력적 ip 입력
sudo apt-get install nginx
sudo service nginx start
/etc/nginx/sites-available
로 이동하여 default 파일의 server 블럭을 다음과 같이 수정한다. server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/front_buil;
server_name 구매한 도메인주소;
#ex)
#server_name test.kr;
location / {
try_files $uri $uri/ /index.html;
}
location /api/ {
proxy_pass http://nodejs 서버 탄력적 ip:서버 포트번호/api/;
#ex)
#proxy_pass http://12.3.45.6:5000/api/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
구매한 도메인주소 앞에 http:// 등 프로토콜 붙이지 말것.
설정파일을 새로 작성하면 default파일을 삭제하고심볼릭 링크를 작성해야한다.
나는 파일을 새로 작성하면 자꾸 오류가 발생해서 default 파일에 작성하였다.
만약 defalut파일이 필요하다면 nginx를 재설치하면 된다.
붙여넣기 하면 안될 수도 있으니 직접 타이핑해야한다.
sudo service nginx restart
apt-get install pm2
pm2 start node.js
pm2 stop app.js