카테고리 없음
NginX - 로드밸런싱으로 무중단 배포 구현하기
gosikoca
2024. 8. 20. 09:46
로드밸런싱은 무엇인가?
로드밸런싱은 서버에 가해지는 부하를 분산시켜 주는 기술을 통칭한다.
한대의 서버에 부하가 집중되어 장애가 나지 않도록 트래픽을 관리해 각각의 서버에서 최적의 성능을 보여줄 수 있도록 한다.
실습 환경
- 인텔리제이
- spring boot
- mac
로컬에 nginx 설치
- Homebrew 를 활용하였다.
brew install nginx
- nginx 설치 확인: nginx가 설치 여부 확인
brew list nginx
- nginx 실행:
sudo nginx
- nginx 중지: nginx 중지 명령어를 사용
sudo nginx -s stop
- nginx 재시작: 설정 변경 후 nginx를 재시작 명령어
sudo nginx -s reload
Nginx.conf 파일 바꾸기
(기존 파일을 복사하여 하나 더 이름을 바꾸어 만들어서 만든다. ex) my_nginx.conf )
cd /usr/local/etc/nginx/nginx.conf
nginx.conf 파일을 vi 명령어를 통해 연다.
vi nginx.conf
다른 conf 파일로 nginX 실행하기
sudo nginx -c /usr/local/etc/nginx/my_nginx.conf
vi편집기를 이용하여 문서 편집 해주기
# /usr/local/etc/nginx/my_nginx.conf
events {
worker_connections 1024;
}
http {
# 에러 로그 설정 (경로는 환경에 따라 조정)
error_log /usr/local/var/log/nginx/error.log;
# upstream 블록 정의 (origin이라는 이름은 그저 마음대로 지정)
upstream origin {
server localhost:8080; -> 이용할 아무 포트
server localhost:8090; -> 이용할 아무 포트
}
#최초 리슨 포트 지정
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
#여기서 위에 지정한 이름과 동일하게 지정해야 함
location / {
proxy_pass http://origin;
root html;
index index.html index.htm;
}
}
}
그러면 아래 그림과 같이 서버가 구성되었다.
Spring boot 와 인텔리제이를 활용해서 잘 실행되는지 확인해보기!!
아래와 같은 실시간 포트번호를 나타내 줄 컨트롤러 하나 생성
그 후 인텔리제이 우측 1시 방향에 edit Configuration 클릭
옆에 복사 버튼 누르면 똑같은 어플리케이션이 하나 더 생긴다.
그다음 modify option을 누른다.
1. 첫번째 방법
- Vm option 선택
- -Dserver.port=포트번호 (원하는 포트번호 입력)
- -Dserver.port=8090
. 두번째 방법
- environment variable 선택
- server.port=포트번호 (원하는 포트번호 입력)
- server.port=8090
그런 다음 ok
두개를 동시에 실행시켜 본다음
그런 다음 두개를 서버를 동시에 실행시켜 보면 잘 실행된다.
localhost에 접속하여 계속 새로고침 해보면 포트 번호가 실시간으로 다르게 화면에 나타난다.