Nginx React-Deploy

백동우·2022년 4월 27일
1
post-thumbnail

EC2 server에 github clone

  1. ssh-keygen -t rsa -b 4096
  2. github에 키를 등록한다
  3. git clone

EC2 인스턴스에 nvm , yarn 설치

AWS 자습서 참고

  1. curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
  2. nvm install --lts
  3. 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로 복사한 내용};
  • ip 확인

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 설정

  1. sudo vi /etc/nginx/sites-available/default
    2
	server_name www.${domain}.com;
  1. sudo nginx -t
  2. sudo systemctl reload nginx
  3. www.${domain}.com 들어가서 확인~

3. SSL 인증서 (Https)

  1. sudo certbot --nginx -d www.${domain}.com
  2. Enter email address (used for ....) => 이메일 입력
  3. Please read the term .... => Yes
  4. Would you be willing to share your email... => 관련 이메일을 받을 여부 체크
  5. Plse choose whether or not to redirect
    => 1. 1번은 리다이렉트를 하지않는다
    => 2. 2번은 리다이렉트를 HTTPS로 해준다. (추천)
  6. Congratulation을 확인한다
  7. sudo systemctl restart nginx
  8. 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;

0개의 댓글