구성
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서버에서 서비스
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 내부 아이피 사용
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이 구매한 도매인과 맞는지 확인하고 없으면 적어주자.