AWWW-1st3.6-w12.tresc-1.0-Slajd4

Z Studia Informatyczne
Wersja z dnia 09:31, 29 wrz 2006 autorstwa Juliusz Jezierski (dyskusja | edycje)
(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)
Przejdź do nawigacjiPrzejdź do wyszukiwania

Architektura serwera Apache

Architektura serwera Apache


Serwer Apache posiada architekturę wieloprocesową i wielomodułową. Na poziomie systemu operacyjnego serwer Apache jest reprezentowany przez jeden proces nadrzędny, tzw. parent process, i wiele procesów podrzędnych, tzw. child processes. Zadaniem procesu nadrzędnego jest prowadzenie nieprzerwanego nasłuchu sieciowego w oczekiwaniu na żądania nadchodzące od klientów HTTP. Gdy proces nadrzędny otrzymuje żądanie HTTP, wtedy uruchamia proces potomny i zleca mu obsługę tego żądania, a sam powraca do nasłuchu. Proces potomny przetwarza żądanie HTTP i wysyła odpowiedź HTTP do klienta HTTP. Po przesłaniu odpowiedzi HTTP proces potomny kończy pracę. Liczba równocześnie pracujących procesów potomnych wynika z liczby równocześnie obsługiwanych żądań HTTP. Przy braku żądań liczba procesów potomnych może wynosić zero.

Często administratorzy korygują taki domyślny model zarządzania procesami serwera Apache i za pomocą stosownych parametrów konfiguracyjnych sprawiają, że w pamięci operacyjnej zawsze znajduje się niewielka pula bezczynnych procesów potomnych, gotowych przyjąć nowe żądania. Pula ta jest tworzona w chwili uruchomienia serwera Apache, a gdy wolne procesy potomne są konsumowane przez nowe żądania, dochodzi do automatycznego uruchamiania dalszych zapasowych procesów. Gdy proces potomny kończy obsługę żądania HTTP, wtedy może nie kończyć pracy lecz powrócić do puli procesów bezczynnych.

Każdy proces Apache ma budowę modułową. Składa się z modułu interfejsu HTTP, odpowiadającego za obsługę komunikacji sieciowej oraz z wielu modułów rozszerzających. Każdy moduł rozszerzający odpowiada za realizację fragmentu funkcjonalności serwera. Moduły posiadają niepowtarzalne nazwy, rozpoczynające się od słowa "mod_". Przykładowo, moduł "mod_access" odpowiada za zapisy historii żądań HTTP w pliku dziennika serwera Apache.

Architektura serwera Apache może być rozszerzana przez programistów. W oparciu o opublikowaną specyfikację interfejsów istnieje możliwość implementacji własnych modułów rozszerzających i ich dołączania do serwera. Administrator serwera Apache ma też możliwość usuwania modułów, z których funkcji nie chce korzystać.


<< Poprzedni slajd | Spis treści | Następny slajd >>