【구현 기능】
1. 세 개의 서버를 구성합니다
2. 동일한 서비스 코드를 세 개의 서버에 각각 배포합니다.
3. nginx를 사용하여 로드 밸런싱을 구현합니다
【구현 아이디어】
us 로드 밸런서는 대화형 서버에 배포되고 다른 두 서버와의 연결을 구성하며 모든 요청은 nginx 서비스 인터페이스에 직접 액세스한 다음 nginx 로드 밸런서는 자체적으로 실제 호출 서버 포트를 선택합니다.
[개발 및 배포 환경]
개발 환경: windows 7 x64 sp1 영문 버전
visualstudio 2017
배포 환경: Alibaba Cloud ecs 인스턴스 windows server 2012 x64
iis 7.0
【필요기술】
asp.net webapi2
【구현 과정】
asp.net webapi2를 사용하여 단순히 json을 반환하는 인터페이스를 작성합니다. 서로 다른 서버에서 인터페이스를 호출하고 있음을 보여주기 위해 디지털 형식으로 세 가지 인터페이스를 생성합니다. . 인터페이스 서비스를 제공하고 각각 3개의 서버 iis에 배포됩니다.
public ihttpactionresult gettest() { //throw new exception_dg_internationalization(1001); string ip = request.getipaddressfromrequest(); return ok("test api . client ip address is -> "+ip+" the server is ===== 333 ====="); }
내가 배포한 세 서버 뒤에 있는 숫자는 각각 111, 222, 333입니다.
참고: return ok는 내 사용자 정의 반환 형식입니다. 특정 단순 코드의 경우 json();
request.getipaddressfromrequest( ) ; IP 주소를 얻는 확장된 방법입니다. 상황에 맞게 구현해 보세요.
【시스템 테스트】
3개의 배경 코드를 생성하여 각각 3개의 서버에 배포했습니다.
서버 정보를 기밀로 유지하기 위해 아래의 모든 IP 주소는 ip_a, ip_b, ip_c로 식별됩니다.
세 번째는 nginx를 배포할 서버입니다:
배포 후 nginx를 구성합니다.
nginx 다운로드:
그런 다음 ip_c 서버에 압축을 풀고 conf 폴더에서 nginx.conf를 엽니다
편집된 내용은 다음과 같습니다
그런 다음 서비스를 시작합니다.
cmd 명령을 사용하여 nginx
이런 식으로 서비스가 시작되더라도... 불만 사항, 서비스가 성공적으로 시작되었다고 말하지 않겠습니까? ... 글쎄요, 그건 인간적이지 않아요!
그런 다음 인터페이스 테스트 도구를 열고 동일한 요청을 세 번 실행합니다.
1개 요청,
2개 요청,
3개 요청,
그것 우리가 호출하는 백그라운드 서비스 인터페이스가 모든 요청에 대해 동일하지 않다는 것을 알 수 있습니다. 이는 많은 수의 고객이 동일한 서버 주소에 액세스할 때 한 서버의 압력이 여러 서버에 할당되어 부하가 분산될 수 있음을 보장합니다. 목적.
위 내용은 Nginx 로드 밸런싱 구성 예시 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!