응용 프로그램 서버의로드 균형 조정 및 고 가용성 : Tomcat, Jboss 및 IIS

게시자 Zevenet | 24 년 2017 월 XNUMX 일

WeGO 소개

이 기사의 목적은 다음과 같은 기능 응용 프로그램 서버를 확대하는 방법을 설명하는 것입니다. 여자 꽁무니를 쫓아 다니다, 보스 or IIS 높은 웹 확장 성을 제공하고 실패에 대해 관대하기 위해 고 가용성으로 설정하고 사이버 보안을 강화하는 방법을 제공합니다.

고 가용성이란 무엇입니까?

고 가용성은 정상적인 시간보다 높은 수준의 운영 성능, 일반적으로 가동 시간을 보장하는 시스템 또는 구성 요소의 품질입니다.

설정하여 응용 프로그램 서버 고 가용성에서 다음 문제를 해결합니다.

  1. 많은 양의 요청을 처리 할 때 단일 서버가 효율성을 잃습니다.
  2. 서버 오류 발생시 세션 데이터가 유지됩니다.
  3. 서비스 중단없이 애플리케이션 업데이트

웹 규모 란 무엇입니까?

Application Server에 웹 규모의 원칙을 적용하여 모든 규모의 비즈니스 프로세스를 확장하고 최적화하고 자동화하고 효과적으로 확장 할 수 있습니다.

응용 프로그램 서버 란 무엇입니까?

응용 프로그램 서버는 응용 프로그램에 비즈니스 논리를 제공하는 소프트웨어 프레임 워크입니다. 즉, 응용 프로그램 서버는 웹 응용 프로그램을 작성하기위한 자원과이를 실행하는 서버 환경을 관리합니다.
이 기사는 모든 애플리케이션 서버의 가이드로 사용할 수 있지만 가장 인기있는 몇 가지 세부 사항을 설명합니다.

  1. 그리고, 여자 꽁무니를 쫓아 다니다 소프트웨어 (또는 Apache Tomcat 또는 Tomcat 서버라고도 함) : Java Servlet, JavaServer Pages, Java Expression Language 및 Java WebSocket 기술의 오픈 소스 구현.
  2. JBoss or 와일드 플라이: Red Hat에서 개발 한 응용 프로그램 서버.
  3. IIS (인터넷 정보 서비스) : Microsoft에서 개발 한 응용 프로그램 서버입니다.

Zevenet로드 밸런서 설정

Zevenet로드 밸런서 우리는 애플리케이션 서버의 고 가용성 및 확장 성을 보장 할 수 있습니다. 이 지시 사항을 따르면 Zevenet Load Balancer의 인스턴스와 여러 응용 프로그램 서버 인스턴스를 설치해야합니다. 우리가 설명 할 환경은 다음과 같습니다.

응용 프로그램 서버 체계

0 단계 : 서버 복제

이 예에서는 각 응용 프로그램마다 두 개의 백엔드 서버를 사용하지만 필요한만큼을 포함 할 수 있습니다. 일관성을 유지하는 것이 중요합니다. 따라서 응용 프로그램 서버에 연결할 때 항상 응용 프로그램에 저장된 모든 데이터가 손실되지 않도록 볼 수 있습니다. 이를 위해서는 서버 내의 세션 복제를 설정해야합니다. 우리는 이것을 0 단계 이는 응용 프로그램 서버에서 수행해야합니다.

여자 꽁무니를 쫓아 다니다 내장 된 메모리 내 세션 복제를 제공합니다. DeltaManagerBackUpManager. 이 두 리플리케이터의 주요 차이점은 DeltaManager 더 느리지 만 실패 할 경우 더 안정적입니다.

JBoss 또한 세션 복제를 가능하게하는 간단한 방법을 제공합니다. web.xml 기술자.

에 대한 서비스 복제 IIS 다음을 사용하여 달성 할 수있다. DFSR (분산 파일 시스템 복제).

1 단계 : 가상 IP 생성

Zevenet Load Balancer가 설치되면 기본 메뉴에서 새 가상 IP를 생성해야합니다. 네트워크-> 가상 인터페이스-> 작업-> 만들기

가상 IP를 생성하려는 물리적 인터페이스를 찾으십시오.

 

새 가상 IP의 이름과 주소를 입력하십시오. 그런 다음 "만들기"버튼을 클릭하여 저장합니다.

2 단계 : http 팜 만들기

팜 또는 클러스터는 서버 기능을 크게 향상시키는 컴퓨터 서버 모음입니다. 우리가 조건을 사용하고 있지만 농장클러스터 동의어로, 그들 사이에 약간의 차이가 있습니다. 이야기 할 때 클러스터, 중복성이 암시되지만, 농장중복성이있을 수도 있고 없을 수도 있습니다. 우리의 경우 실패 구성에 대한 내구성이 있으므로 팜 또는 클러스터를 동의어로 말할 수 있습니다.

이렇게하면 응용 프로그램 서버 팜을 설정하여 성능과 장애 허용 성을 높일 수 있습니다. 이는 고 가용성에 필수적입니다. 이를 달성하기 위해 LSLB-> 농장-> 만들기

이름을 선택하고 HTTP 프로필로. 동일한 가상 IP 및 포트에서 컨텐츠 스위칭 옵션을 제공 할 수 있으므로 웹 서비스에 가장 적합한 옵션이므로 http 프로파일을 선택합니다.

두 개의 추가 옵션이 표시됩니다. 1 단계에서 생성 한 가상 IP와 포트 (예 : 80를 선택하면 HTTP 프로토콜의 기본값이므로)를 선택하고 찜하기 버튼을 클릭합니다.

3 단계 : 서비스 추가

주요 아이디어는 동일한 가상 IP 및 포트에서 다른 응용 프로그램 서버의 다른 응용 프로그램을 제공하는 것입니다. 따라서 일단 팜이 생성되면 새 서비스를 추가하기 위해 팜을 편집해야합니다. 이 예에서는 세 가지 서비스를 설정합니다. 각 응용 프로그램 서버마다 하나씩. 버튼을 클릭하십시오. 농장 편집.

팜의 몇 가지 세부 정보를 편집 할 수 있습니다. 예에서는 기본값과 서비스를 설정합니다.

위의 스크린 샷에서 우리는 서비스 추가 서비스 이름은 "app1"입니다.

 

동일한 팜을 통해 세 가지 서비스에 모두 액세스 할 것이므로 이러한 서비스를 구별해야합니다. 이렇게하려면 다음 값을 설정할 수 있습니다. URL 패턴. 이 필드는 클라이언트가 특정 URL 패턴을 통해 요청하는 URL에 따라 웹 서비스를 결정합니다. 이 예에서는 ^ / app1. *, ^ / app2. *^ / app3. *. 를 클릭하십시오 수정 변경 사항을 적용합니다.

백엔드가 주소를 찾아야한다는 것을 고려하십시오. http://[VIRTUAL_IP]:[PORT]/[YOUR_SERVICE] (이 예에서는 http://192.168.56.200/app1),이를 보장하려면 응용 프로그램에서 컨텍스트를 설정해야합니다. 이 예에서는 문맥을 설정합니다. / app1 ...에 대한 여자 꽁무니를 쫓아 다니다, / app2 ...에 대한 보스/ app3 ...에 대한 IIS. 그만큼 문맥 특정 가상 호스트 내에서 실행되는 웹 응용 프로그램을 나타냅니다. 특별한 경우 IIS, 컨텍스트는 응용 프로그램이라고합니다.

이 예에서는 애플리케이션 당 두 개의 백엔드 서버가 있습니다. 우리는 IP, 포트 (기본값은 8080 for 여자 꽁무니를 쫓아 다니다JBoss, 80 for IIS), 시간 제한 및 무게 및 클릭 백엔드 저장 버튼을 클릭합니다.

우리는 서버 정류를 피하고자합니다 : 세션 중에 한 서버에서 다른 서버로 이동하면 효율성, 데이터 및 통신 손실이 발생합니다. 이것을 피하기 위해 지속성 세션 구성해야합니다. 우리는 세션 ID로 세션을 유지하도록 선택할 것이므로 세션 동안 하나의 서버에만 연결할 것입니다.

서비스 전역 매개 변수에서 우리는 이제 지속 세션 필드를 쿠키 : 특정 쿠키

JSESSIONID Tomcat 및 Jboss에 대한 지속성 세션 식별자로 SessionID IIS의 경우 페이지의 botton에서 업데이트를 클릭하십시오.

 

이제 동일한 팜에서 JBoss에 대한 지속성 쿠키를 포함하여 app2 및 app1에 대해 app2과 동일한 방식으로 3 개의 서비스를 더 추가해야합니다 (기본값은 JSESSIONID) 및 IIS (ASP.NET의 기본 쿠키는 ASPXAUTH),하지만 당신은 응용 프로그램에 필요한 쿠키를 사용할 수 있습니다. 팜의 모든 서비스에는 팜 또는 팜 서비스간에 공유 할 수있는 자체 백엔드가 있습니다.

올바른 URL 패턴과 일치시키기 위해서는 서비스의 순서가 중요합니다.

마지막으로 팜을 다시 시작하여 변경 내용을 적용해야합니다.

축하합니다! 고 가용성으로 응용 프로그램 서버를 구성했습니다. 다음을 입력하여 액세스 할 수 있습니다. http://[VIRTUAL_IP]:[PORT]/[YOUR_SERVICE] (이 예에서는 http://192.168.56.200/app1, http://192.168.56.200/app2 or http://192.168.56.200/app3).

4 단계 : 고급 검사

백엔드에 대한 고급 상태 확인을 수행하기 위해 팜 보호자를 설정하여 TCP 포트 검사뿐만 아니라 응용 프로그램의 작동 및 작동을 확인합니다. 해당 위치를 찾으십시오. 농장 수호자 서비스에서 3 단계에서 설정했습니다. 클릭 FarmGuardian을 사용하여 백엔드 서버 확인수표와 마지막 사이의 시간을 수정할 수도 있습니다. 확인할 명령 텍스트 상자에 다음 명령을 입력하십시오.

check_http -I HOST -w 10 -c 10 -t 10 -e 200 -p PORT -s '</html>'

마지막으로 페이지의 botton에서 Update를 클릭하십시오.

 

명령 check_http 지정된 호스트와의 HTTP 연결을 테스트합니다. 이 경우 다음 옵션을 사용합니다.

- 나는 자기야.: 토큰 HOST는 정의 된 백엔드 IP 주소로 대체됩니다.
-w 10: 경고 상태가되는 응답 시간 : 10 초
-c 10: 임계 상태에 대한 응답 시간 : 10 초
-t 10: 연결 시간이 초과되기 10 초
-e 200: 서버 응답 상태에서 200 문자열을 기대합니다.
-p PORT: 토큰 PORT는 정의 된 백엔드 포트로 대체됩니다.
-s ' ': 내용에 예상되는 문자열은 ' '

따라서이 명령이 수행하는 작업은 기본적으로 200 OK 응답을 받고 응답 명령에 문자열 ' '. 이 문자열은 응답의 끝에 있기 때문에 선택합니다. 이렇게하면 백엔드에서 완전한 응답을받을 수 있습니다.

5 단계 : 높은 보안 성

Zevenet Load Balancer로 보안 통신을 쉽게 설정할 수 있으므로 다음 단계는 HTTPS 수신기를 활성화하는 것입니다. 팜 전역 매개 변수 편집 화면에서 팜 수신기를 HTTP에서 HTTPS로 변경하고 가상 포트를 443로 변경하십시오.

이제 서비스는 다음을 입력하여 액세스 할 수 있습니다. https://[Your_virtual_ip]/[yourappservice] 브라우저에서.

보안 통신은 현재 실행 중이지만 HTTPS 매개 변수를 구성하여 추가로 진행할 수 있습니다. 팜 전역 매개 변수 내에서 HTTPS 설정 섹션. 우리는 암호문높은 보안.

ciphers 필드는 SSL 연결을 강화하기 위해 SSL 연결에서 허용되는 암호 목록을 작성하는 데 사용됩니다. 선택하여 높은 보안 성, 우리는 기본적으로 암호를 설정합니다.

kEECDH+ECDSA+AES128:kEECDH+ECDSA+AES256:kEECDH+AES128:kEECDH+AES256:kEDH+AES128:kEDH+AES256:DES-CBC3-SHA:+SHA:!aNULL:!eNULL:!LOW:!kECDH:!DSS:!MD5:!EXP:!PSK:!SRP:!CAMELLIA:!SEED

또 다른 옵션은 HTTPS 인증서 사용 가능: 인증서 목록이 현재 팜에 대해 선택되도록 표시됩니다 (HTTP 팜에만 해당). 우리는 목록에서 하나를 선택하고 클릭 할 수 있습니다. 추가. 마지막으로를 클릭하십시오. 수정 변경 내용을 적용하기 위해 팜을 다시 시작하십시오.

자세한 내용은 참조하십시오 HTTP 프로필 팜.

응용 프로그램 서버에서 HTTPS를 활성화 할 수도 있습니다.이 경우 옵션을 활성화해야합니다. HTTPS 백엔드.

공유 :

GNU Free Documentation License의 조건에 따른 문서.

이 글이 도움 되었나요?

관련 기사