로드 밸런서 설정 (서버가 죽었을 때 다른 서버에서 정상 작동)
event {
worker_connections 1024;
}
http {
include mime.types
// redirect all traffic to Https http 요청을 https 로 redirect
server {
listen 80;
server_name [server_ip];
return 301 https://$host$reqeust_uri;
}
server {
listen 443 ssl http2;
server_name [server_ip];
root /sites/demo;
index index.html
ssl_certificate /etc/nginx/ssl/self.crt
ssl_certificate_key /etc/nginx/ssl/self.key;
location / {
try_files $uri $uri/ = 404;
proxy_pass http://back-end; // <------- (1)
}
}
// --------------------------(2) ---------------------
upstream back-end {
server localhost:8080;
server localhost:8081;
}
// --------------------------------------------------
Load Balencer 방식 설정
- round-robin : 랜덤 (default)
- least-connected : 커넥션이 가장 적은 서버를 할당
- ip-hash : 클라이언트 IP를 해쉬한 값을 기반으로 특정 서버를 할당
}
// --------------------------(2) ---------------------
upstream back-end {
# least-conneced 설정
least-conn;
server localhost:8080; weight = 3;
server localhost:8081; max_fails = 5 fail_timeout=30s;
server localhost:8082; backup;
# IP hash 기반으로 하고 싶은 경우 설정
# ip-hash
}
// --------------------------------------------------
옵션
- weitht = n : 업스트림 서버의 비중을 나타내는데, 이 값을 2로 설정하면 설정하지 않은 다른 서버에 비해 두배 더 자주 선택된다.
- max_fails = n : n으로 지정한 횟수만큼 실패가 일어나면 서버가 죽은 것으로 간주한다.
- fail_timeout = n : max_fails가 지정된 상태에서 이 값이 설정한 시간만큼 응답하지 않으면 죽은것으로 간주한다.
- down : 해당 서버를 사용하지 않게 지정한다. (단, ip_hash; 지시어 설정에서만)
- backup : 모든 서버가 동작하지 않을 때 backup으로 표시된 서버가 사용되고, 그 전에는 사용되지 않는다.
'개발 일지 > 개인 회고' 카테고리의 다른 글
Code States - MainProject 갈등 (5) | 2022.10.19 |
---|---|
[Main Project] 내가 적용한 기술 설명 (4) | 2022.10.07 |
[Main Project] NginX 를 이용하여 Https 적용하는 방법 (0) | 2022.10.02 |
[Main Project] 예약 기능 구현 (0) | 2022.09.29 |
[Main Project] 게시글 좋아요 구현 (0) | 2022.09.29 |