고성능 고가 용 프로젝트 Nginx (3) Upstream (부하 균형)
1.1 nginx 의 부하 균형
nginx 의 부하 균형 은 upstream 모듈 에서 이 루어 집 니 다.
1.2 nginx 의 모듈
1.2.1 nginx 의 모듈 분류
nginx 모듈 은 세 가지 유형 으로 나 뉜 다.
1)handler
2)filter
3) upstream (상류)
1.2.2 모듈 의 역할
handler & filter - 단기 작업 완료 에 사용
upstream - 단기 제한 을 뛰 어 넘 고 네트워크 데이터 수신, 처리, 퍼 가기 완료
1.2.3 upstream 의 의미
nginx 에 게 단일 기 계 를 뛰 어 넘 는 가로 처리 확장 능력 을 제공 하여 nginx 를 단말기 노드 로 만 벗 어 나 게 하고 네트워크 응용 등급 의 분할, 패 키 징 과 통합 전략 기능 을 갖 추 게 합 니 다.
1.3, upstream 의 사용 방법
1.3.1 upstream 그룹 과 호출 정의
http {
upstream myproject {
server 127.0.0.1:8000 weight=3;
server 127.0.0.1:8001;
server 127.0.0.1:8002;
server 127.0.0.1:8003;
}
server {
listen 80;
server_name www.domain.com;
location / {
proxy_pass http://myproject;
}
}
}
1.3.2 upstream 의 배분 방식
1) 라운드 로 빈 (기본 값)
폴 링, 모든 요청 은 시간 순서에 따라 하나씩 분배 되 며, 백 엔 드 서버 가 다운 되면 자동 으로 삭 제 됩 니 다.
2)weight
가중 폴 링 은 백 엔 드 서버 의 성능 이 고 르 지 않 은 상황 을 해결 하 는 데 사용 된다.
정의 방법:
upstream cmdschoolSer {
server 10.168.0.185 weight=10;
server 10.168.0.186 weight=10;
}
3)ip_bash
모든 요청 은 ip 에 접근 하 는 bash 결과 에 따라 배정 되 기 때문에 방문객 은 백 엔 드 서버 를 고정 적 으로 방문 하면 session 장기 유지 문 제 를 해결 할 수 있 습 니 다.
정의 방법:
upstream cmdschoolSer {
ip_hash;
server 10.168.0.185:8080;
server 10.168.0.186:8080;
}
4) fair (제3자)
백 엔 드 서버 의 응답 시간 에 따라 응답 시간 이 짧 은 우선 분 배 됩 니 다.
정의 방법:
upstream cmdschoolSer {
fair;
server 10.168.0.185:8080;
server 10.168.0.186:8080;
}
5)url_bash (제3자)
정의 방법:
upstream cmdschoolSer {
server 10.168.0.185:8080;
server 10.168.0.186:8080;
hash $request_uri;
hash_method crc32;
}
6)tips
upstream cmdschoolSer {# ip
ip_hash;
server 10.168.0.185:8080 down;
server 10.168.0.185:8081 weight=2;
server 10.168.0.186:8080;
server 10.168.0.186:8081 backup;
}
1.3.3 설비 의 상태
1)down
현재 server 가 부하 에 잠시 참여 하지 않 음 을 표시 합 니 다.
2)weight
수치 가 클 수록 권한 이 커진다 (기본 값 1)
3)max_fails
요청 실패 횟수 를 허용, 실패 횟수 를 초과, proxy 로 돌아 가기next_upstream 모듈 정의 오류 (기본 1)
4)fail_timeout
max_fails 회 실패 후 일시 정지 시간
5)backup
다른 모든 비 backup 기기 다운 또는 바 쁠 때 backup 기기 요청 (압력 이 가장 가 벼 운)
2. 실험 부분
2.1 실험 정보
2.1.1 실험 기초
당신 은 이미 다음 과 같은 실험 을 마 쳤 습 니 다.
http://cmdschool.blog.51cto.com/2420395/1703299
2.1.2 호스트 정보
lbSer
ip address=10.168.0.183
hostname=lbSer
proxySer:
ip address=10.168.0.185
hostname=proxySer
tomcatSer:
ip address=10.168.0.188
hostname=tomcatSer
client:
ipaddress=10.168.0.8
hostname=client
2.1.3 yum 패키지 설치
In lbSer
yum -y install http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
yum -y install nginx
2.2 설정 부분
In lbSer
2.2.1、step
vim 편집 / etc / nginx / nginx. conf
원래 http {} 부분 을 삭제 하고 다음 코드 로 바 꿉 니 다.
http {
upstream cmdschool {
server 10.168.0.185:81;
server 10.168.0.185:82;
}
server {
listen 80;
server_name www.cmdschool.org;
location / {
proxy_pass http://cmdschool;
}
}
}
2.2.2、step
서 비 스 를 시작 하고 시작 으로 설정 합 니 다.
/etc/init.d/nginx restart
chkconfig nginx on
2.2.3、step
vim 편집 / etc / sysconfig / iptables
다음 코드 추가:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
2.2.4、step
방화벽 재 부팅
/etc/init.d/iptables restart
In client
2.2.5、step
테스트 부하 균형
curl http://10.168.0.182
curl http://10.168.0.182
curl http://10.168.0.182
curl http://10.168.0.182
----------------------------------------------------------
이론 부분 은 자 료 를 참조한다.
1) 공식:
http://www.nginx.org
2)Tengine:
http://tengine.taobao.org
실험 부분 은 자 료 를 참조한다.
1) Nginx 공식 다운로드 경로:
http://nginx.org/en/download.html
2) Nginx + Tomcat 부하 균형 설정 (업 스 트림 모듈)
https://www.nginx.com/resources/wiki/start/topics/examples/loadbalanceexample/
http://tengine.taobao.org/book/chapter_5.html
http://www.cnblogs.com/xiaogangqq123/archive/2011/03/04/1971002.html
http://onlyzq.blog.51cto.com/1228/557848/
http://developer.51cto.com/art/201407/446626.htm
http://www.myhack58.com/Article/sort099/sort0102/2011/31642.htm
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Haproxy 웹 클러스터 구축실험 준비: Haproxy 서버 1대, Nginx 서버 2대, 클라이언트 1대(로컬 컴퓨터 사용) Nginx 서버: ### 참고: 둘 다 비슷한 작업을 수행해야 합니다. Haproxy 서비스: 테스트: 클라이언트가 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.