728x90
목차
1. Nginx
■ Nginx란?
- 트래픽이 많은 웹사이트의 서버(WAS)를 도와주는 비동기 이벤트 기반 구조의 경량화 웹 서버 프로그램
- 요청에 맞는 정적 파일을 응답해주는 HTTP Web Server로 활용
- Reverse Proxy Server로 활용하여 WAS의 부하를 줄일 수 있는 로드밸런서 역할
■ Nginx로 배포
- nginx 이름으로 보안 그룹, 인스턴스, 탄력적 IP를 생성
- 해당 링크에서 나온 방식으로 각각 생성
- nginx는 보안그룹에서 HTTP 유형을 사용
- 생성된 탄력적 IP를 nginx 인스턴스에 연결
- nginx 연결
- sudo apt update로 업데이트
- sudo apt install nginx로 엔진엑스 설치
- sudo cat /etc/nginx/nginx.conf로 엔진엑스가 잘 설치되어 있는지 확인(cat 명령어는 파일을 열때 사용)
- 해당 파일이 include 되어있으면 nginx 정상 설치
- cd /etc/nginx/sites-enabled로 해당 경로로 이동 후 ls 명령어로 default 폴더가 있는지 확인
- sudo vim default로 해당 파일 수정
- Default server configuration 밑에 해당 코드 작성
- 입력이 가능한 상태로 가려면 O 나 A키를 입력하면 INSERT 모드로 변환
- 입력 완료 후에는 ESC 키를 누르면 밖으로 빠져 나갈 수 있음
- 사용하는 서버의 수에 따라 server의 개수를 늘리면 됨
- 아래의 코드에서 cpu-bound-app을 springboot로 변경
- instance_n번의_ip는 연결할 {back_server의 프라이빗 IPv4 주소:8080}을 입력(중괄호는 없이
upstream cpu-bound-app {
server {instance_1번의_ip}:8080 weight=100 max_fails=3 fail_timeout=3s;
server {instance_2번의_ip}:8080 weight=100 max_fails=3 fail_timeout=3s;
server {instance_3번의_ip}:8080 weight=100 max_fails=3 fail_timeout=3s;
}
- location / 내에 해당 코드 입력
- 아래의 코드에서 cpu-bound-app을 springboot로 변경
location / {
proxy_pass http://cpu-bound-app;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
- INSERT 상태에서 나온 후에 :wq를 입력하면 저장하고 밖으로 이동
- 저장안하고 그냥 나가려면 q!를 입력시 강제로 나감 - sudo systemctl status nginx로 엔진엑스의 상태를 확인할 수 있고 컨트롤 가능
- sudo systemctl reload nginx로 nginx를 reload
■ 서버 실행
- back_server를 연결해서 docker -run -p 8080:8080 myorg/myapp으로 실행
- 엔진엑스의 인스턴스와 연결한 탄력적 IP 주소를 주소창에 입력 "인증실패"가 나오면 서버 정상 동작
- 엔진엑스만으로 서버 구동