nginx 부하 방지 솔 루 션 (sysgurad 모듈)
4323 단어 nginxnginx 최적화nginx 모듈nginx 고부 하
1. nginx sysguard 모듈 설치
1.1 파일 다운로드
# wget http://nginx.org/download/nginx-1.4.2.tar.gz
# wget https://github.com/alibaba/nginx-http-sysguard/archive/master.zip \
-O nginx-http-sysguard-master.zip
# unzip nginx-http-sysguard-master.zip
# tar -xzvf nginx-1.4.2.tar.gz
1.2 sysgrard 패 치 는 여기 서 nginx - 1.4.2 에 대응 하 는 패 치 를 찾 지 못 했 습 니 다. 1. 2.9 와 1. 3. 9 밖 에 없 었 습 니 다. 차라리 1. 3.9 를 시도 해 보 세 요. 차이 가 많 지 않 을 겁 니 다.
# cd nginx-1.4.2
# patch -p1 < ../nginx-http-sysguard-master/nginx_sysguard_1.3.9.patch
1.3 설치 nginx
# ./configure --prefix=/usr/local/nginx-1.4.2 \
--with-http_stub_status_module --add-module=../nginx-http-sysguard
# make
# make install
2. sysguard 명령 문법: sysguard [on | off] 기본 값: sysguard off 설정 세그먼트: http, server, location 스위치 모듈
문법: sysguardload load = number [action = / url] 기본 값: none 설정 세그먼트: http, server, location 에서 부하 밸브 값 을 지정 합 니 다. 시스템 부하 가 이 값 을 초과 하면 모든 요청 이 action 이 정의 하 는 uri 요청 으로 재 설정 됩 니 다. URL action 이 정의 되 지 않 으 면 서버 는 503 으로 되 돌아 갑 니 다.
문법: sysguardmem swapratio = ratio% [action = / url] 기본 값: none 설정 세그먼트: http, server, location 은 교환 파 티 션 에서 사용 하 는 밸브 값 을 정의 합 니 다. 교환 파 티 션 이 이 밸브 값 을 초과 하면 후속 요청 은 모두 action 정의 uri 요청 으로 재 설정 합 니 다. URL action 이 정의 되 지 않 으 면 서버 는 503 으로 되 돌아 갑 니 다.
문법: sysguardinterval time 기본 값: sysguardinterval 1s 설정 세그먼트: http, server, location 정의 시스템 정보 업데이트 빈도, 기본 1 초.
문법: sysguardlog_level info | notice | warn | error 기본 값: sysguardlog_level error 설정 단계: http, server, location 정의 sysguard 로그 단계
3. sysguard 는 인 스 턴 스 3.1 nginx 설정 을 사용 합 니 다.
server {
listen 80;
server_name www.ttlsa.com www.heytool.com;
access_log /data/logs/nginx/www.ttlsa.com.access.log main;
index index.html index.php index.html;
root /data/site/www.ttlsa.com;
sysguard on;
# ,load 0.01, 5 10+
sysguard_load load=0.01 action=/loadlimit;
sysguard_mem swapratio=20% action=/swaplimit;
location / {
}
location /loadlimit {
return 503;
}
location /swaplimit {
return 503;
}
}
3.2 테스트 부하 OK 의 경우 nginx 에 접근
# uptime
16:23:37 up 6 days, 8:04, 2 users, load average: 0.00, 0.01, 0.05
# curl -I www.ttlsa.com
HTTP/1.1 403 Forbidden
Server: nginx
Date: Thu, 03 Oct 2013 16:27:13 GMT
Content-Type: text/html
Content-Length: 162
Connection: keep-alive
사이트 에 파일 이 없어 서 403 으로 돌 아 왔 습 니 다. 사실은 괜 찮 습 니 다.
부하 가 밸브 값 을 초과 한 경우 nginx 에 접근 합 니 다.
# uptime
16:25:59 up 6 days, 8:06, 2 users, load average: 0.05, 0.04, 0.05
# curl -I www.ttlsa.com
HTTP/1.1 503 Service Temporarily Unavailable
Server: nginx
Date: Thu, 03 Oct 2013 16:26:19 GMT
Content-Type: text/html
Content-Length: 206
Connection: keep-alive
swap 가 밸브 값 을 초과 하 는 기능 은 더 이상 테스트 하지 않 겠 습 니 다.모두 집에 돌아 가면 스스로 테스트 를 해 볼 수 있다.
끝 말 은 nginx 가 realserver 인 상황 에서 개인 적 으로 도 이런 방법 을 사용 하 는 것 을 추천 합 니 다. 만약 에 서버 부하 가 높 아 지면 보통 비교적 긴 시간 이 걸 려 야 정상 수준 으로 회복 할 수 있 습 니 다. 이 플러그 인 을 사용 한 상황 에서 부하 가 밸브 값 에 달 하고 nginx 는 503 으로 돌아 갑 니 다. 전단 에 고장 전 이 를 사용 하여 다른 서버 에 요청 합 니 다.이 서버 는 접근 하지 않 은 상태 에서 빠르게 정상 수준 으로 회복 되 고 즉시 작업 에 들 어 갈 수 있다.밸브 값 을 초과 한 서버 처리 요청 속도 도 크게 떨 어 집 니 다. 이 모듈 을 사용 하면 요청 을 더욱 빠 른 서버 에 교묘 하 게 보 내 접근 속도 가 느 린 문 제 를 어느 정도 피 할 수 있 습 니 다. 앞에서 말 한 것 은 클 러 스 터 환경 에서 단일 환경 에서 고려 하지 않 아 도 됩 니 다.
참고 글: nginx - http - sysguard:https://github.com/alibaba/nginx-http-sysguard TCP Proxy:https://github.com/yaoweibin/nginx_tcp_proxy_module (같은 기능 소프트웨어) 원문:http://www.ttlsa.com/html/3299.html
옮 겨 싣 기 는 생존 시간 을 밝 혀 주 십시오:http://www.ttlsa.com/html/3299.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
간단! Certbot을 사용하여 웹 사이트를 SSL(HTTPS)화하는 방법초보자가 인프라 주위를 정돈하는 것은 매우 어렵습니다. 이번은 사이트를 간단하게 SSL화(HTTP에서 HTTPS통신)로 변경하는 방법을 소개합니다! 이번에는 소프트웨어 시스템 Nginx CentOS7 의 환경에서 S...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.