본문 바로가기
개발/리액트 배포

리액트 EC2 Nginx이용 배포(2)

by sungin95 2023. 9. 20.

한개의 사이트를 직접 배포해 보고 싶다는 생각에 시작하면서 배웠던 방법을 정리하는 글입니다.

깊은 내용에 대해서는 잘 모르고 쓰는 글임을 알려 드립니다.

 

이전글:

https://plants-growth.tistory.com/30

 

지난 시간에 EC2 배포 까지 해 보았고

이번에는 Nginx 설치 및 Nginx를 활용하여 배포하는 방법을 포스트 하겠습니다. 

 

2. HTTP기본 포트번호 80번 사용하는 방법 ex) www.도메인.com

  • Nginx설치 및 설정 세팅

 

Nginx 설치

우선 Nginx 서버를 설치해줍니다. 

# nginx 설치 (-y 옵션으로 모든옵션을 자동 yes 처리)
$ sudo apt-get install nginx -y

# nginsx 설치 확인
$ nginx -v
# ex) nginx version: nginx/1.18.0 (Ubuntu)

 

이제 설치된 Nginx 파일을 보시면

$ cd /etc/nginx

$ ls

gn

nginx.conf, sites-enabled, sites-available 3개가 보일 겁니다. 

 

 

그리고 sites-enabled, sites-available 폴더 안에 가면 default 파일이 있을 겁니다. 

 

저는 여기서 default만 건들 예정입니다. 

다른 블로그를 보시면 다양한 방법이 있는데. 여러번 해 보니 결국 차이는 올인원처럼 nginx.conf 에 다 넣느냐 server 관련 설정은 sites-enabled 폴더의 default 에 분리하여 넣을 것인가. 그리고 이 default의 이름을 `????.conf` 로 바꾸어서 사용 할 것인가 입니다. 

저는 코드는 분리하는 것이 맞다고 생각해서 default 를 바꾸는 방식을 사용할 것이고요. 이 default의 이름을 바꾸어서 사용해야 하는 이유가 딱히 없어서 그대로 사용할려고 합니다.

일반적으로는 이름을 바꾸어서 사용합니다.

ex) default.conf

 

참고

리눅스에서 파일을 조회할려면 vi, vim 명령어를 사용해야 합니다. 

ex) vi nginx.conf

그런데 편집을 할려면 권한이 있어야 합니다. 그러니 편집까지 원하시면 sudo를 추가해 주세요. 

ex) sudo vi nginx.conf

편집 모드는 i 를 누르시면 됩니다. 

편집 모드 해제는 ESC

저장 안하고 나갈때는 `:q!`

저장하고 나갈때는 `:wq!`

 

nginx.conf 설정

nginx.conf 에서 user 를 바꾸어 주어야 합니다. 

$ vi nginx.conf

맨 위에 user www-data; => user ubuntu; 로 바꾸어 주세요. 

혹시 모르니까 이 코드가 잘 있는지 확인해 주세요.(기본 설정값입니다.)

# nginx.conf
http {
...		
        
        include /etc/nginx/conf.d/*.conf;
        include /etc/nginx/sites-enabled/*; 
        # 이름을 바꾸신 분은 `include /etc/nginx/sites-enabled/*.conf `로 바꾸어 주세요
        
}

 

server 설정

이제 sites-available 의 default 에 들어가 주세요.

$ sudo vi /etc/nginx/sites-available/default

기존의 코드를 바꾸어 주세요. 

server {
        listen 80;
        server_name ec2-54-180-202-188.ap-northeast-2.compute.amazonaws.com; # 도메인 주소

        location / {
                root /home/ubuntu/random-sellect-frontend/build; # 빌드 파일 위치
                index index.html index.htm;
                try_files $uri $uri/ /index.html;
        }
}

 

sites-available에 복사된 설정 파일을 sites-enables폴더 안에서도 링크해줍니다.

$ sudo ln -sf /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default

확인

$ sudo nginx -t

 

포트 열기

이제 aws 돌아가 해당 인스턴스 보안그룹에서 인바운드 규칙 편집에 들어가 80번 포트를 열어주세요. 

 

그리고 보안탭에서 인바운드 규칙을 추가 해 줍니다.

보안 그룹 클릭

인바운드 규칙 편집 클릭

 

80번 포트 추가(HTTPS까지 적용 하실 거면 443도 미리 추가해 주세요)

 

 

이제 퍼블릭 주소를 통해 들어가시면 

 

 

성공

잘 나오면 성공입니다!!!

 

여기까지 고생하셨습니다. 

다음글에서는 HTTPS를 적용해 보겠습니다.

이걸 적용해야 `! 주의 요함` 이 사라집니다. 

다만, HTTPS 적용을 위해서는 SSL 인증서를 발급 받아야 하는데.

인증서 발급을 위해서는 도메인 주소가 필요합니다.

이 부분은 다른 블로그를 찾아 보신 후에 구매하시고 오셨야 할 수 있습니다. 

 

다음글:

https://plants-growth.tistory.com/32

 

참조

https://curryyou.tistory.com/510

https://nerogarret.tistory.com/48

https://github.com/AI-Trolls/Web-related-topics/blob/master/nginx.md

 

'개발 > 리액트 배포' 카테고리의 다른 글

리액트 EC2 Nginx HTTPS 적용(3)  (0) 2023.09.20
리액트 EC2 배포(1)  (0) 2023.09.19