Wpisem tym rozpoczynam serię poświęconą modułowi pozwalającemu na budowę łącza pomiędzy serwerem WWW Apache a serwerem aplikacji JBoss w wersji 5. Postaram się opisać sposób instalacji, kompilacji, konfiguracji, przygotowania do działania.

Oto wpisy poświęcone konfiguracji modułowi mod_cluster:

  1. Konfiguracja klastra oparta o moduł mod_cluster — wprowadzenie
  2. Konfiguracja klastra oparta o moduł mod_cluster — kompilacja modułów
  3. Konfiguracja klastra oparta o moduł mod_cluster – konfiguracja

Istnieją dwa główne sposoby na które można można udostępnić aplikację webową działającą na JBossie (lub też Tomcacie) w Internecie:

  • udostępnić bezpośredni dostęp do serwera aplikacji na którym jest zainstalowana aplikacja
  • wykorzystanie odpowiedniego pośrednika, który będzie pośredniczył pomiędzy wywołaniami z Internetu a serwerem aplikacji

Pierwszy sposób jest łatwy do realizacji, ale posiada kilka wad, takich jak:

  • brak wsparcia balansowania ruchem (w przypadku konfiguracji z klastrem)
  • brak optymalizacji wydajności (np. serwowanie statycznej treści z innych źródeł, bardziej wydajnych niż serwer aplikacji)
  • mniejsze bezpieczeństwo (trudniej zabezpieczyć serwer aplikacji z powodu dużej ilości działających usług)

Drugim sposobem jest udostępnienie odpowiednich usług poprzez pośrednika, który będzie przekierowywał połączenia przychodzące do aplikacji na serwerze JBoss. Rozwiązanie takie charakteryzuje się:

  • trudniejszą konfiguracją (trzeb skonfigurować zarówno pośrednika jak i serwer aplikacji)
  • wsparciem dla balansowania ruchem i failover
  • zwiększa bezpieczeństwo (udostępniamy tylko te aplikacje, na jakich nam zależy)
  • może zwiększyć wydajność rozwiązania (serwowanie statycznych fragmentów strony z innych źródeł niż serwer aplikacji)

Najczęściej używanym pośrednikiem w przypadku łączenia z JBossem lub Tomcatem jest serwer WWW Apache. W jego przypadku mamy możliwość skorzystania z trzech różnych modułów pozwalających na łączenie się z serwerem aplikacji:

  • mod_proxy – szybki i łatwy sposób konfiguracji, ale gorsze wsparcie klastrowania
  • mod_jk – zaawansowany moduł z dobrą obsługa klastrów, skomplikowany w konfiguracji
  • mod_cluster – nowo rozwijany moduł pozwalający na połączenie z serwerem aplikacji

Każdy z tych modułów konfiguruje się inaczej, mają także inne właściwości. Poniżej postaram się przedstawić sposób konfiguracji połączenie pomiędzy serwera Apacha z modułem mod_cluster a serwerem aplikacji JBoss.

Wymagania minimalne

Moduł mod_cluster posiada określone wymagania zarówno odnośnie serwera Apache jak JBoss:

  • serwer WWW Apache w wersji co najmniej 2.2.8
  • serwer JBoss w wersji co najmniej 5.0

Konfiguracja z której ja będę korzystał jest następująca:

  • system operacyjny: Red Hat Enterprise Linux 5.5 64bit
  • serwer WWW: Apache w wersji 2.2.14 – standardowe jest dostępna wersja 2.2.3, nowszą wersję serwera można pobrać z kanału JBoss EWS for 5Server x86_64
  • Java: wersja 1.6.20
  • serwer aplikacji JBoss EAP 5 – aby przetestować działanie klastra zostanie utworzony klaster składający się z trzech węzłów
  • moduł mod_cluster, wersja 1.1.0.CR2

Czym jest moduł mod_cluster

Moduł mod_cluster odpowiada za przeprowadzenia balansowanie ruchem bazującym o protokół HTTP. Pozwala on na przekierowanie żądań przychodzących do serwera WWW do jednego z węzłów klastra.

W przeciwieństwie do dwóch pozostałych modułów (mod_jk oraz mod_proxy) tworzy on dodatkowe połączenie pomiędzy poszczególnymi węzłami klastra a serwerem WWW. Poprzez do połączenie odpowiednia aplikacja po stronie serwera aplikacji informuje moduł mod_cluster o swojej sytuacji. Wykorzystuje w tym celu zestaw metod, zwanych Mod-Cluster Management Protocol (MCMP). Te dodatkowe informacje pozwalają na duże lepszą integrację serwera WWW z klastrem oraz lepsze zarządzanie przekazywanymi połączeniami.

Zalety mod_cluster

Najważniejsze zalety w stosunku do innych aplikacji odpowiedzialnych za balansowanie ruchem HTTP:

  • dynamiczna konfiguracja połączeń z węzłami klastra
  • obliczanie współczynników balansowania ruchem po stronie serwera
  • kontrola na cyklem życia aplikacji zainstalowanej na klastrze
  • opcjonalne użycie protokołu AJP

W następnych częściach przedstawię, w jaki sposób skonfigurować moduł mod_cluster do pracy z klastrem serwerów JBoss.

Źródła

Tags: , , , ,