EC2 server에 github clone
- ssh-keygen -t rsa -b 4096
- github에 키를 등록한다
- git clone
EC2 인스턴스에 nvm , yarn 설치
AWS 자습서 참고
- curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
- nvm install --lts
- npm install -g yarn
NGinx
- sudo apt-get update (pacakge 정보를 최신화 한다.)
- sudo apt-get -y install nginx (-y 생략이 가능 (추가 질문 없이 설치가능))
- sudo ufw app list
- Nginx HTTP 등 리스트가 출력됩니다
- 해당 ip 주소를 들어가면 welcome to ~~~ 출력
- build 파일주소로가 pwd를 통해 주소를 복사
- cd /etc/nginx/sites-available
- vi default
# root /var/www/html; default값
root ${pwd로 복사한 내용};
Encrypy 이용한 HTTPS 구축
1. Cerbot 설치
- sudo apt-get update
- sudo apt-get install software-properties-common
- sudo add-apt-repository universe
- sudo add-apt-repository ppa:certbot/certbot
- sudo apt-get update
- sudo apt-get install certbot python3-certbot-nginx
2. Nginx Configuration 설정
- sudo vi /etc/nginx/sites-available/default
2
server_name www.${domain}.com;
- sudo nginx -t
- sudo systemctl reload nginx
- www.${domain}.com 들어가서 확인~
3. SSL 인증서 (Https)
- sudo certbot --nginx -d www.${domain}.com
- Enter email address (used for ....) => 이메일 입력
- Please read the term .... => Yes
- Would you be willing to share your email... => 관련 이메일을 받을 여부 체크
- Plse choose whether or not to redirect
=> 1. 1번은 리다이렉트를 하지않는다
=> 2. 2번은 리다이렉트를 HTTPS로 해준다. (추천)
- Congratulation을 확인한다
- sudo systemctl restart nginx
- www.{domain}.com 을 접속하여 HTTPS를 확인한다
crontab을 사용한 자동갱신
- certbot renew --dry-run // cerbot을 통한 테스트 Congratulations 확인
- crontab -e // crontab 설정 파일로 (1 클릭 nano추천)
-
0 2 * * * sudo certbot renew --post-hook "systemctl reload nginx"
-
가장 하단의 명령어를 삽입 (매일 2시에 해당 명령어 수행)
-
0 2 * * * certbot renew --pre-hook "systemctl stop nginx" --post-hook "systemctl start nginx"
-
Ctrl x - y - enter (저장 후 나가기)
-
sudo certbot certificates // 해당인증서의 만료기간등을 확인이가능하다
참고 사항
- ubuntu에서 자주사용하는 nginx 명령어
nginx 시작: sudo systemctl start nginx
nginx 상태 확인: sudo systemctl status nginx
nginx 재시작: sudo systemctl restart nginx
nginx 정지 : sudo service nginx stop
에러
- NGINX를 통한 Build파일 배포후 reload(F5)클릭 시 404가 뜬다면 try_files 수정을 진행
-> sudo vi /etc/nginx/sites-available/default
try_files $uri $uri/ =404; //default
try_files $uri $uri/ /index.html;