Apache_2_0_dla_zaawansowanych_apa2za.pdf

(379 KB) Pobierz
IDZ DO
PRZYK£ADOWY ROZDZIA£
SPIS TRE CI
KATALOG KSI¥¯EK
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
Apache 2.0 dla
zaawansowanych
Autor: Peter Wainwright
T³umaczenie: Robert Gêbarowski
ISBN: 83-7197-874-X
Tytu³ orygina³u:
Professional Apache 2
Format: B5, stron: 984
TWÓJ KOSZYK
DODAJ DO KOSZYKA
Olbrzymie mo¿liwo ci i wszechstronno æ serwera Apache uczyni³y go najbardziej
rozpowszechnionym serwerem WWW. Kilka miesiêcy temu Apache Software Foundation
opublikowa³a now¹ wersjê Apache 2.0. Najnowsza edycja Apache jest lepiej przystosowana
do pracy na ró¿nych platform systemowych ni¿ wersja 1.3, dziêki czemu coraz czê ciej
mo¿na spotkaæ Apache pracuj¹cego pod kontrol¹ Windows czy Mac OS. Sta³o siê to
mo¿liwe dziêki wprowadzeniu modu³ów zwielokrotnionego przetwarzania, tzw. MPM
(ang. Multiprocessing Module), dostosowanych do w³a ciwo ci rozmaitych systemów
operacyjnych, jak równie¿ wprowadzeniu przeno nych bibliotek fazy wykonywania
(ang. Apache Portable Runtime). Porównuj¹c Apache 2.0 z wcze niejszymi wersjami
zauwa¿ymy te¿ istotne zmiany w procesie kompilacji i konsolidacji serwera.
Apache 2.0 to nie tylko zaawansowana architektura serwera, ale równie¿ liczne
udoskonalenia i nowe funkcje. Ksi¹¿ka ta stanowi obszerny i wyczerpuj¹cy przewodnik
po wszelkich nowo ciach wprowadzonych w wersji 2.0. Znajdziesz w niej tak¿e informacje
o zmianach wprowadzonych w porównaniu z poprzednimi wersjami.
Zagadnienia omówione w ksi¹¿ce:
• Nowy serwer WWW Apache 2.0 oraz sposoby uaktualniania z Apache 1.3
• Nowe funkcje Apache dostêpne wersji w 1.3 i proponowane mo¿liwo ci migracji
serwera WWW do nowej wersji Apache 2.0
• Instalacja serwera Apache w oparciu o dystrybucje binarne oraz kompilowanie
serwera z kodu ród³owego dla systemów operacyjnych UNIX i Windows
• Bezpieczne i wydajne tworzenie dynamicznej zawarto ci stron WWW za pomoc¹
skryptów CGI i FastCGI
• Implementacje wirtualnych hostów w ramach serwera Apache w prostym i z³o¿onym
modelu, a tak¿e masowe tworzenie hostów wirtualnych
• Przystosowywanie serwerów Apache do sprawowania funkcji serwera
po rednicz¹cego; zagadnienia zwi¹zane z buforowaniem zawarto ci WWW,
odporno ci¹ na b³êdy i testowaniem wydajno ci, a tak¿e tworzenie klastrów
serwerów WWW
• Monitorowanie i zabezpieczanie serwerów Apache
• Rozszerzanie mo¿liwo ci serwera Apache poprzez w³¹czanie dodatkowych modu³ów
do obs³ugi programów w jêzykach Perl, Python, PHP, Tcl, Java, Ruby i protokole
WebDAV
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
O NOWO CIACH
ZAMÓW CENNIK
CZYTELNIA
FRAGMENTY KSI¥¯EK ONLINE
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
Spis treści
O Autorach.....................................................................................................................................13
Wstęp............................................................................................................................................17
Rozdział 1. Apache i Internet...........................................................................................................21
Apache — anatomia serwera WWW ...................................................................................... 21
Kod źródłowy Apache ....................................................................................................... 21
Licencja Apache............................................................................................................... 22
Pomoc techniczna do Apache .......................................................................................... 22
Jak działa Apache ............................................................................................................ 23
Protokół HTTP........................................................................................................................ 28
Żądania i odpowiedzi HTTP .............................................................................................. 28
Nagłówki HTTP ................................................................................................................. 32
Praca w sieci oraz TCP/IP...................................................................................................... 33
Definicje........................................................................................................................... 33
Pakiety i kapsułkowanie................................................................................................... 34
Komunikaty ACK, NAK i inne............................................................................................ 35
Model sieci TCP/IP .......................................................................................................... 36
Protokoły inne niż IP ........................................................................................................ 38
Adresy IP oraz klasy sieci................................................................................................. 39
Specjalne adresy IP ......................................................................................................... 39
Maski sieciowe i wybór tras ............................................................................................. 40
Odszukiwanie usług — dobrze znane porty...................................................................... 41
Sieciowy super serwer — inetd........................................................................................ 43
Przyszłość — protokół IPv6.............................................................................................. 43
Narzędzia sieciowe .......................................................................................................... 45
Wybór sprzętu dla serwera .................................................................................................... 48
Obsługiwane platformy .................................................................................................... 48
Podstawowe wymagania serwera..................................................................................... 49
Pamięć operacyjna........................................................................................................... 50
Interfejs sieciowy ............................................................................................................. 51
Połączenie internetowe.................................................................................................... 52
Dysk twardy i kontroler .................................................................................................... 52
Zestawienie właściwości systemu operacyjnego.............................................................. 53
4
Apache 2.0 dla zaawansowanych
Nadmiarowość i archiwizacja danych ............................................................................... 54
Specyficzne rozwiązania sprzętowe.................................................................................. 55
Niech ktoś zrobi to za nas ..................................................................................................... 56
Rozdział 2. Serwer Apache od podstaw.........................................................................................59
Instalacja Apache.................................................................................................................. 60
Dostępność Apache......................................................................................................... 60
Instalacja Apache z dystrybucji binarnej........................................................................... 61
Instalacja Apache z użyciem kodu źródłowego ................................................................. 63
Instalacja Apache z gotowych pakietów ........................................................................... 64
Ręczna instalacja serwera Apache................................................................................... 68
Uaktualnianie serwera Apache......................................................................................... 71
Inne zagadnienia.............................................................................................................. 72
Podstawowa konfiguracja serwera......................................................................................... 73
Decyzje ............................................................................................................................ 73
Nadrzędny plik konfiguracyjny .......................................................................................... 78
Inne dyrektywy podstawowej konfiguracji ......................................................................... 79
Zaczynanie, kończenie i wznawianie pracy serwera ............................................................... 80
Zaczynanie pracy Apache w systemie UNIX...................................................................... 80
Zaczynanie pracy Apache w systemie Windows ............................................................... 81
Opcje wywołania Apache.................................................................................................. 83
Wznawianie pracy serwera ............................................................................................... 92
Zatrzymanie serwera........................................................................................................ 94
Automatyczne uruchamianie serwera............................................................................... 94
Testowanie serwera .............................................................................................................. 98
Testowanie przy pomocy przeglądarki .............................................................................. 98
Testowanie z wiersza poleceń lub program terminalowego.............................................. 99
Testowanie konfiguracji serwera bez jego uruchamiania................................................ 101
Informacja o stanie serwera w wierszu poleceń............................................................. 102
Graficzne narzędzia konfiguracyjne...................................................................................... 103
Comanche ..................................................................................................................... 103
TkApache....................................................................................................................... 106
LinuxConf....................................................................................................................... 107
Webmin ......................................................................................................................... 107
ApacheConf ................................................................................................................... 110
Inne narzędzia konfiguracyjne ........................................................................................ 111
Rozdział 3. Budowa Apache według własnych wymagań............................................................... 113
Dlaczego budować Apache samodzielnie ............................................................................ 113
Budowa Apache z kodu źródłowego..................................................................................... 115
Konfiguracja i budowa Apache ....................................................................................... 117
Wybór modułów wstawianych do serwera ...................................................................... 121
Budowa Apache jako serwera dynamicznego ................................................................. 125
Zmiana porządku modułów w Apache 1.3...................................................................... 127
Konfiguracja zaawansowana................................................................................................ 129
Konfiguracja układu Apache........................................................................................... 129
Wybór modułu MPM....................................................................................................... 136
Reguły............................................................................................................................ 138
Tworzenie Apache z obsługą suExec.............................................................................. 140
Konfiguracja plików pomocniczych i skryptów Apache.................................................... 142
Konfiguracja budowy Apache 2.0 dla wielu platform ...................................................... 143
Konfiguracja Apache do produkcji lub do usuwania błędów ........................................... 145
Spis treści
5
Konfiguracja Apache do dystrybucji binarnej .................................................................. 145
Konfiguracja ścieżki bibliotek i plików wstawianych Apache .......................................... 145
Konfiguracja środowiska budowy......................................................................................... 146
Budowanie modułów przez configure i apxs......................................................................... 148
Dodawanie niezależnych modułów za pomocą configure ............................................... 148
Budowanie modułów za pomocą apxs ........................................................................... 150
Instalacja modułów za pomocą apxs ............................................................................. 151
Szablony modułów generowane przez apxs.................................................................... 152
Przeciążanie i użycie apxs w skryptach makefile............................................................ 153
Rozdział 4. Konfiguracja Apache według własnych wymagań.......................................................155
Gdzie Apache szuka swojej konfiguracji............................................................................... 156
Składnia pliku konfiguracyjnego..................................................................................... 156
Konfiguracja hostów wirtualnych.................................................................................... 156
Wstawianie plików konfiguracyjnych............................................................................... 157
Konfiguracje katalogów.................................................................................................. 159
Konfiguracja warunkowa ................................................................................................ 159
Struktura konfiguracji serwera Apache ................................................................................ 162
Dyrektywy kontenerowe serwera Apache ....................................................................... 164
Typy dyrektyw i lokalizacji............................................................................................... 167
Gdzie można umieścić dyrektywy ................................................................................... 170
Zasięg kontenera i zagnieżdżanie .................................................................................. 172
Jak Apache łączy kontenery i ich zawartość................................................................... 173
Poprawność dyrektyw zawartych w kontenerach ............................................................ 174
Opcje i przeciążanie............................................................................................................. 175
Włączanie i wyłączanie przez dyrektywy Options ............................................................ 175
Przeciążanie dyrektyw przez konfiguracje katalogów ...................................................... 178
Ograniczanie dostępu dyrektywami allow i deny .................................................................. 181
Kontrola dostępu w oparciu o nazwę ............................................................................. 182
Kontrola dostępu w oparciu o adresy IP......................................................................... 183
Kontrola dostępu do podsieci przez adres i maskę sieci ............................................... 184
Kontrola dostępu w oparciu o nagłówek HTTP ............................................................... 185
Dostęp dla hosta przy uwierzytelnianiu użytkownika ...................................................... 186
Przeciążanie dostępu dla hosta ..................................................................................... 187
Wykazy zawartości katalogów .............................................................................................. 187
Włączanie i wyłączanie indeksowania katalogu.............................................................. 187
Jak moduł mod_autoindex generuje stronę HTML ......................................................... 189
Ukrywanie plików przy pomocy dyrektywy IndexIgnore.................................................... 195
Sterowanie porządkiem sortowania ............................................................................... 196
Przypisywanie ikon w procesie indeksowania................................................................. 197
Przypisywanie opisów..................................................................................................... 200
Środowisko serwera Apache ............................................................................................... 201
Ustawianie, usuwanie i przekazywanie zmiennych z shella ............................................ 202
Warunkowe ustawianie zmiennych................................................................................. 203
Zmienne specjalne dla przeglądarek.............................................................................. 204
Wykrywanie robotów za pomocą dyrektywy BrowserMatch ............................................. 206
Przekazywanie zmiennych do skryptów CGI.................................................................... 206
Kontrola dostępu warunkowego..................................................................................... 207
SetEnvIf a SetEnv .......................................................................................................... 207
Ustawianie zmiennych przez mod_rewrite ...................................................................... 208
Kontrola nagłówków żądania i odpowiedzi ........................................................................... 208
Ustawianie własnych nagłówków odpowiedzi ................................................................. 210
Ustawianie własnych nagłówków żądania ...................................................................... 212
6
Apache 2.0 dla zaawansowanych
Wstawianie wartości dynamicznych do nagłówków ........................................................ 212
Ustawianie warunkowe własnych nagłówków ................................................................. 213
Wyciąganie nagłówków odpowiedzi z plików metadanych............................................... 214
Ustawianie ograniczeń czasowych ................................................................................. 215
Wysyłanie zawartości w oryginalnej postaci ......................................................................... 218
Kontrola nagłówka identyfikacyjnego serwera ..................................................................... 219
Wysyłanie skrótu treści........................................................................................................ 221
Pomoc sąsiedzka ................................................................................................................ 221
Sterowanie robotami za pomocą pliku robots.txt ........................................................... 222
Sterowanie robotami w języku HTML.............................................................................. 223
Sterowanie robotami za pomocą kontroli dostępu ......................................................... 224
Przyciąganie uwagi robotów ........................................................................................... 224
Jak zapewnić robotom właściwą informację................................................................... 225
Znane roboty, złe roboty i dalsza lektura ....................................................................... 226
Rozdział 5. Czego potrzebuje klient.............................................................................................227
Uzgadnianie i obsługa zawartości........................................................................................ 227
Typy plików .................................................................................................................... 228
Kodowanie pliku ............................................................................................................ 232
Wersje językowe plików.................................................................................................. 237
Zestaw znaków dla pliku ................................................................................................ 238
Uzgadnianie zawartości.................................................................................................. 241
Uzgadnianie zawartości z pomocą MultiViews................................................................ 243
Permutacje plików i adresy URL zgodne z MultiViews .................................................... 250
Magiczne typy MIME ...................................................................................................... 254
Obsługa błędów i odpowiedzi .............................................................................................. 259
Jak serwer Apache obsługuje błędy ............................................................................... 259
Błędy i kody odpowiedzi ................................................................................................. 259
Dyrektywa ErrorDocument.............................................................................................. 260
Ograniczenia dyrektywy ErrorDocument.......................................................................... 264
Nazwy zastępcze i przeadresowanie.................................................................................... 265
Nazwy zastępcze dla lokalizacji plików i skryptów .......................................................... 266
Przeadresowanie............................................................................................................ 268
Podstawianie adresów URL z pomocą modułu mod_rewrite .......................................... 271
Mapy graficzne obsługiwane po stronie serwera............................................................ 293
Dopasowanie adresów URL zawierających błędy pisowni............................................... 298
Rozdział 6. Tworzenie zawartości dynamicznej ...........................................................................301
Wstawki po stronie serwera ................................................................................................ 303
Włączanie SSI................................................................................................................ 303
Format poleceń SSI ....................................................................................................... 306
Zestaw poleceń SSI ....................................................................................................... 307
Zmienne SSI .................................................................................................................. 307
Przekazanie końca ścieżki do dokumentów składanych przez serwer ............................ 309
Ustawienie formatu dla daty i błędu............................................................................... 309
Stosowanie szablonów z pomocą wstawek SSI ............................................................. 310
Buforowanie dokumentów składanych przez serwer ...................................................... 312
Identyfikacja na podstawie praw wykonania dokumentów składanych przez serwer ...... 313
Protokół CGI ........................................................................................................................ 314
Skrypt CGI i środowisko ................................................................................................. 315
Konfiguracja serwera Apache pod kątem rozpoznawania skryptów CGI ......................... 317
Wyzwalanie skryptów CGI poprzez zdarzenia.................................................................. 322
Zgłoś jeśli naruszono regulamin