Nginx Ec2설치

이건선·2023년 4월 19일
0

해결

목록 보기
26/48
  • 구성
    express 2ea (EC2 Ubuntu)
    nginx 1ea (EC2 Ubuntu)

  • 환경
    OS : ubuntu20.04
    Nginx : 1.18.0

  • 조건
    express 2ea, nginx 1 같은 VPC
    가비아에서 도메인 구입 후 nginx IP와 매칭

  • 시나리오
    client 호출을 nginx 서버에서 받음.
    nginx 서버에서 express 서버로 로드 밸런싱
    한 대의 express 서버 장애 시 다른 정상 express서버에서 서비스


  • Nginx Load Balancing
sudo apt update

sudo apt install nginx

sudo apt update

운영체제에서 사용 가능한 패키지들과 그 버전에 대한 정보를 업데이트하는 명령어

sudo apt install nginx

Nginx가 성공적으로 설치되면 nginx -v 커멘드로 확인할 수 있다.

nginx -v
sudo vi /etc/nginx/nginx.conf


/etc/nginx/conf.d 경로를 사용할 것이므로 /etc/nginx/sites-enabled/ 경로와 /etc/nginx/sites-available/ 경로에 defalut 파일이 있다면 삭제한다.

위 경로로 설정되어 있는 두개의 디폴트 설정을 삭제하고 아래 경로의 default.conf 파일을 만들어서 수정한다.

sudo vi /etc/nginx/conf.d/default.conf

upstream myserver {
        server 172.31.5.101:3000; 
        server 172.31.10.21:3000; 
}

server {
        listen 80;

      location / {
        proxy_pass http://myserver;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
    }
}

작성 후 저장.

upstream myserver {} ip 주소만 사용에 맞게 변경해주면 된다. - 해당 시나리오 exrpess 내부 아이피 사용

  • SSL
sudo snap install certbot --classic

sudo apt-get install python3-certbot-nginx

sudo certbot --nginx


step 1. 알림 받을 email 설정
step 2. a
step 3. y
step 4. 도메인 주소


certbot --nginx 설치시 위 경우와 다르게 물어볼 때는 아래처럼 입력한다.


sudo vi /etc/nginx/conf.d/default.conf

server 안에 server_name이 구매한 도매인과 맞는지 확인하고 없으면 적어주자.

  • 결과
    HTTPS가 잘 적용되어 있다.
    upstream myserver안에 적어둔 아이피로 EC2 2ea가 로드 밸런싱이 되고있다.

출처 : https://yes5.tistory.com/11

profile
멋지게 기록하자

0개의 댓글