E-book details

Apache. Receptury. Wydanie II

Apache. Receptury. Wydanie II

Rich Bowen, Ken Coar

Ebook

Czy wiesz, jaki serwer HTTP jest najpopularniejszy w sieci? Właśnie tak, jest to Apache! W lipcu 2008 roku jego udział w rynku wynosił blisko 50% (według Netcraft). Historia tego serwera sięga roku 1995, kiedy ukazała się jego pierwsza oficjalna wersja, oznaczona numerem 0.6.2. Cechy, które zadecydowały o sukcesie tego rozwiązania, to bezpieczeństwo, skalowalność, wielowątkowość i obsługa różnorodnych języków skryptowych.

Dzięki książce "Apache. Receptury" zapoznasz się z gotowymi przepisami na rozwiązanie ciekawych, specyficznych oraz intrygujących problemów. Nauczysz się instalować serwer z różnych źródeł oraz na różnych platformach. Dowiesz się, w jaki sposób zwiększyć jego bezpieczeństwo, jak uruchomić serwery wirtualne oraz poprawić wydajność Apache. Autorzy książki pokażą Ci, jak uruchomić obsługę języków skryptowych, tak aby serwowane strony stały się dynamiczne. Cała wiedza zostanie przedstawiona w sprawdzony w tej serii sposób: problem - rozwiązanie - analiza.

  • Sposoby instalacji serwera Apache
  • Dodawanie funkcjonalności dzięki modułom
  • Możliwości rejestracji zdarzeń
  • Konfiguracja serwerów wirtualnych
  • Wykorzystanie aliasów, przekierowań oraz przepisań (mod_rewrite)
  • Zarządzanie dostępem do serwowanych zasobów
  • Bezpieczeństwo serwera Apache
  • Wykorzystanie szyfrowanej transmisji - protokół SSL
  • Zapewnienie wydajności
  • Wykorzystanie języków skryptowych

Oto książka z najlepszymi przepisami na Apache!

Przedmowa (11)

1. Instalacja serwera (19)

  • 1.1. Instalacja serwera z pakietów dystrybucji Red Hat Linux (20)
  • 1.2. Instalacja serwera z pakietów dystrybucji Debian (21)
  • 1.3. Instalacja serwera Apache w systemie Windows (22)
  • 1.4. Pobieranie plików źródłowych serwera Apache (27)
  • 1.5. Budowa serwera Apache z kodu źródłowego (29)
  • 1.6. Instalacja serwera Apache za pomocą programu ApacheToolbox (30)
  • 1.7. Uruchamianie, zatrzymywanie oraz ponowne uruchamianie serwera Apache (32)
  • 1.8. Usunięcie serwera Apache (34)
  • 1.9. Której wersji serwera Apache użyć (35)
  • 1.10. Uaktualnienie serwera przy użyciu config.nice (37)
  • 1.11. Uruchamianie serwera Apache w momencie startu systemu operacyjnego (38)
  • 1.12. Przydatne opcje konfiguracyjne (39)
  • 1.13. Odnajdywanie plików serwera Apache (41)

2. Instalacja modułów (43)

  • 2.1. Instalacja typowego modułu (44)
  • 2.2. Instalacja modułu mod_dav w systemie uniksowym (45)
  • 2.3. Instalacja modułu mod_dav w systemie Windows (47)
  • 2.4. Instalacja modułu mod_perl w systemie uniksowym (49)
  • 2.5. Instalacja modułu mod_php w systemie uniksowym (51)
  • 2.6. Instalacja modułu mod_php w systemie Windows (52)
  • 2.7. Instalacja modułu mod_ssl (53)
  • 2.8. Wyszukiwanie modułów na witrynie modules.apache.org (54)
  • 2.9. Instalacja modułu mod_security (55)
  • 2.10. Dlaczego ten moduł nie działa? (57)

3. Rejestracja zdarzeń (59)

  • 3.1. Zwiększenie szczegółowości zapisów dziennika zdarzeń (62)
  • 3.2. Zwiększenie liczby komunikatów o błędach (63)
  • 3.3. Rejestracja zawartości POST (65)
  • 3.4. Rejestracja adresu IP klienta łączącego się poprzez serwer proxy (66)
  • 3.5. Rejestracja adresu MAC klienta (67)
  • 3.6. Rejestracja Cookies (67)
  • 3.7. Zaniechanie rejestracji żądań pobierania obrazów pochodzących ze stron lokalnych (69)
  • 3.8. Zmiana pliku dziennika zdarzeń o określonej porze (70)
  • 3.9. Zmiana pliku dziennika zdarzeń pierwszego dnia miesiąca (71)
  • 3.10. Rejestracja nazw komputerów zamiast ich adresów IP (72)
  • 3.11. Oddzielne pliki dzienników zdarzeń serwerów wirtualnych (73)
  • 3.12. Rejestracja żądań proxy (75)
  • 3.13. Rejestracja komunikatów o błędach różnych serwerów wirtualnych w różnych plikach (76)
  • 3.14. Rejestracja adresu IP serwera (77)
  • 3.15. Rejestracja stron, z których nadchodzą żądania (78)
  • 3.16. Rejestracja nazw używanych przeglądarek (79)
  • 3.17. Rejestracja dowolnych pól nagłówka żądania (79)
  • 3.18. Rejestracja dowolnych pól nagłówka odpowiedzi (80)
  • 3.19. Rejestracja aktywności serwera w bazie danych MySQL (81)
  • 3.20. Rejestracja zdarzeń w dzienniku systemowym (82)
  • 3.21. Rejestracja katalogów użytkowników (84)

4. Serwery wirtualne (87)

  • 4.1. Konfiguracja serwerów wirtualnych opartych na nazwach (88)
  • 4.2. Konfiguracja jednego z serwerów wirtualnych opartych na nazwach jako serwera domyślnego (90)
  • 4.3. Konfiguracja serwerów wirtualnych opartych na adresach (91)
  • 4.4. Konfiguracja jednego z serwerów wirtualnych opartych na adresach jako serwera domyślnego (92)
  • 4.5. Jednoczesne użycie serwerów wirtualnych opartych na adresach oraz na nazwach (93)
  • 4.6. Liczne serwery wirtualne obsługiwane za pomocą modułu mod_vhost_alias (94)
  • 4.7. Liczne serwery wirtualne obsługiwane za pomocą reguł przepisania (96)
  • 4.8. Rejestracja zdarzeń wszystkich serwerów wirtualnych (97)
  • 4.9. Podział pliku dziennika zdarzeń (98)
  • 4.10. Serwery wirtualne oparte na portach (98)
  • 4.11. Ta sama zawartość dostępna pod kilkoma adresami IP (99)
  • 4.12. Definiowanie serwerów wirtualnych w bazie danych (100)

5. Aliasy, przekierowania oraz przepisania (103)

  • 5.1. Przyporządkowanie adresu URL do katalogu (103)
  • 5.2. Tworzenie dodatkowego adresu URL dla istniejącej zawartości (105)
  • 5.3. Przydzielenie użytkownikom ich własnych adresów URL (106)
  • 5.4. Utożsamienie kilku adresów URL za pomocą pojedynczej dyrektywy (109)
  • 5.5. Przyporządkowanie kilku adresów URL do tego samego katalogu CGI (110)
  • 5.6. Tworzenie katalogów CGI dla każdego użytkownika (110)
  • 5.7. Przekierowanie do innego miejsca (111)
  • 5.8. Przekierowanie kilku adresów URL w to samo miejsce (113)
  • 5.9. Nierozróżnianie wielkości liter w adresach URL (114)
  • 5.10. Wyróżnianie składni kodu źródłowego PHP bez użycia dowiązań symbolicznych (115)
  • 5.11. Wymiana ciągów znaków w żądanych adresach URL (117)
  • 5.12. Zamiana informacji o ścieżce na argumenty CGI (117)
  • 5.13. Odmowa dostępu żądaniom pochodzącym z obcych stron (118)
  • 5.14. Przekierowanie żądań pochodzących z obcych stron do strony z informacjami (119)
  • 5.15. Przepisanie na podstawie łańcucha zapytania (120)
  • 5.16. Przekierowanie całego lub części serwera do SSL (121)
  • 5.17. Zamiana nazw katalogów na nazwy serwerów (122)
  • 5.18. Przekierowanie wszystkich żądań do jednego serwera (123)
  • 5.19. Zamiana nazw dokumentów na argumenty programu (123)
  • 5.20. Przepisywanie elementów ścieżki do ciągu zapytania i odwrotnie (124)
  • 5.21. Przepisywanie nazwy serwera na nazwę katalogu (125)
  • 5.22. Przekształcanie segmentów adresu URL w argumenty zapytania (126)
  • 5.23. Używanie dyrektyw AliasMatch, ScriptAliasMatch i RedirectMatch (126)

6. Bezpieczeństwo (129)

  • 6.1. Wykorzystanie kont użytkowników do uwierzytelnienia dostępu do zasobów WWW (130)
  • 6.2. Konfiguracja haseł jednorazowych (132)
  • 6.3. Wygasające hasła (133)
  • 6.4. Ograniczanie wielkości umieszczanych na serwerze plików (135)
  • 6.5. Ograniczenie pobierania obrazków ze stron znajdujących się na innych serwerach (137)
  • 6.6. Żądanie zarówno słabego, jak i silnego uwierzytelnienia (138)
  • 6.7. Zarządzanie plikami .htpasswd (139)
  • 6.8. Przygotowanie plików haseł uwierzytelniania typu Digest (141)
  • 6.9. Rozluźnienie ochrony w podkatalogu (142)
  • 6.10. Wybiórcze zniesienie ochrony (144)
  • 6.11. Autoryzacja za pomocą informacji o właścicielu pliku (146)
  • 6.12. Przechowywanie poświadczeń użytkownika w bazie danych MySQL (147)
  • 6.13. Dostęp do nazwy użytkownika uwierzytelnionego (148)
  • 6.14. Uzyskanie hasła użytego do uwierzytelnienia (149)
  • 6.15. Ochrona przed atakami na hasła typu brute-force (150)
  • 6.16. Uwierzytelnianie typu Digest i uwierzytelnianie typu Basic (151)
  • 6.17. Dostęp do poświadczeń osadzonych w adresach URL (153)
  • 6.18. Zabezpieczenie usługi WebDAV (153)
  • 6.19. Uruchomienie usługi WebDAV bez udzielenia zezwolenia na zapisywanie do plików użytkownikowi, z uprawnieniami którego działa serwer (154)
  • 6.20. Ograniczanie dostępu poprzez proxy do określonych adresów URL (156)
  • 6.21. Ochrona plików za pomocą osłony (157)
  • 6.22. Ochrona plików serwera przed złośliwymi skryptami (159)
  • 6.23. Nadanie prawidłowych uprawnień do plików (160)
  • 6.24. Uruchomienie serwera z minimalną liczbą modułów (163)
  • 6.25. Ograniczenie dostępu do plików znajdujących się poza katalogiem głównym WWW (165)
  • 6.26. Ograniczenie metod dostępnych dla użytkowników (166)
  • 6.27. Ograniczanie żądań zakresów (167)
  • 6.28. Obrona przed atakami DoS przy użyciu modułu mod_evasive (168)
  • 6.29. Zmiana katalogu głównego serwera Apache przy użyciu modułu mod_security (170)
  • 6.30. Migracja do mechanizmów uwierzytelniania w wersji 2.2 (171)
  • 6.31. Blokowanie działania robaków przy użyciu modułu mod_security (172)
  • 6.32. Uprawnienia tylko do odczytu i do zapisu w repozytorium Subversion (173)
  • 6.33. Używanie stałych przekierowań do ukrywania zablokowanych adresów URL (174)

7. SSL (177)

  • 7.1. Instalacja SSL (177)
  • 7.2. Instalacja SSL w systemie Windows (179)
  • 7.3. Tworzenie samodzielnie podpisanych certyfikatów SSL (179)
  • 7.4. Tworzenie zaufanego ośrodka certyfikacyjnego (183)
  • 7.5. Udostępnianie części witryny WWW poprzez SSL (185)
  • 7.6. Uwierzytelnianie za pomocą certyfikatów klientów (187)
  • 7.7. Wirtualne serwery SSL (188)
  • 7.8. Certyfikaty wieloznaczne (189)

8. Treść dynamiczna (191)

  • 8.1. Uaktywnienie katalogu CGI (191)
  • 8.2. Uaktywnienie skryptów CGI w katalogach niewyznaczonych za pomocą dyrektywy ScriptAlias (193)
  • 8.3. Wskazywanie dokumentu domyślnego w katalogu CGI (194)
  • 8.4. Wykorzystanie rozszerzeń plików systemu Windows do uruchamiana skryptów CGI (195)
  • 8.5. Identyfikacja skryptów CGI na podstawie ich rozszerzeń (197)
  • 8.6. Sprawdzenie, czy obsługa programów CGI jest skonfigurowana poprawnie (198)
  • 8.7. Odczyt wartości z formularza (200)
  • 8.8. Uruchamianie programu CGI dla pewnych rodzajów treści (203)
  • 8.9. Użycie SSI (204)
  • 8.10. Przedstawienie daty ostatniej modyfikacji (206)
  • 8.11. Dołączenie standardowego nagłówka (207)
  • 8.12. Dołączanie wyniku działania programu CGI (208)
  • 8.13. Uruchamianie za pomocą programu suexec skryptów CGI z uprawnieniami innego użytkownika (208)
  • 8.14. Instalacja programu obsługi modułu mod_perl z serwisu CPAN (210)
  • 8.15. Pisanie programów obsługi modułu mod_perl (212)
  • 8.16. Uruchomienie obsługi skryptów PHP (213)
  • 8.17. Weryfikacja instalacji PHP (214)
  • 8.18. Parsowanie danych wynikowych CGI z uwzględnieniem dyrektyw Server Side Includes (215)
  • 8.19. Parsowanie danych wynikowych skryptów ScriptAlias z uwzględnieniem dyrektyw Server Side Includes (216)
  • 8.20. Wyznaczenie mod_perl do obsługi wszystkich skryptów w języku Perl (216)
  • 8.21. Włączenie obsługi skryptów języka Python (217)

9. Obsługa błędów (219)

  • 9.1. Obsługa przypadku brakującego pola Host (219)
  • 9.2. Zmiana kodu stanu odpowiedzi za pomocą skryptu CGI (220)
  • 9.3. Własne komunikaty o błędach (221)
  • 9.4. Komunikaty o błędach w różnych językach (222)
  • 9.5. Przekierowanie odwołań do niepoprawnych adresów URL do innych stron (223)
  • 9.6. Prawidłowa strona komunikatu o błędzie w programie Internet Explorer (224)
  • 9.7. Powiadamianie o błędach (225)

10. Proxy (227)

  • 10.1. Zabezpieczenie serwera proxy (227)
  • 10.2. Zabezpieczenie serwera proxy przed użyciem go jako otwartego przekaźnika poczty (229)
  • 10.3. Przekazywanie żądań do innego serwera (230)
  • 10.4. Blokowanie żądań proxy do określonych miejsc (231)
  • 10.5. Przeniesienie żądań obsługiwanych przez mod_perl na inny serwer (232)
  • 10.6. Konfiguracja buforującego serwera proxy (233)
  • 10.7. Filtrowanie treści przekazywanych przez serwer proxy (234)
  • 10.8. Wymaganie uwierzytelnienia się na serwerze dostępnym poprzez proxy (235)
  • 10.9. Równoważenie obciążenia przy użyciu mod_proxy_balancer (235)
  • 10.10. Przekazywanie wywołań z serwera wirtualnego (237)
  • 10.11. Blokowanie przekazywania wywołań FTP (237)

11. Wydajność (239)

  • 11.1. Określenie ilości potrzebnej pamięci RAM (239)
  • 11.2. Testowanie wydajności serwera Apache za pomocą programu ab (240)
  • 11.3. Dobór ustawień dostępu keepalive (242)
  • 11.4. Określenie stanu aktywności witryny WWW (243)
  • 11.5. Unikanie wyszukiwania w DNS (244)
  • 11.6. Optymalizacja dowiązań symbolicznych (246)
  • 11.7. Ograniczanie wpływu użycia plików .htaccess na wydajność serwera (247)
  • 11.8. Wyłączenie negocjacji treści (249)
  • 11.9. Optymalizacja tworzenia procesów (250)
  • 11.10. Dobór parametrów tworzenia wątków (251)
  • 11.11. Buforowanie najczęściej przeglądanych plików (253)
  • 11.12. Równomierne rozłożenie obciążenia między kilka serwerów (254)
  • 11.13. Buforowanie list zawartości katalogu (256)
  • 11.14. Przyśpieszenie pracy programów Perl CGI za pomocą modułu mod_perl (257)
  • 11.15. Buforowanie treści dynamicznych (258)

12. Zawartość katalogów (261)

  • 12.1. Generowanie listy zawartości katalogu lub folderu (261)
  • 12.2. Wyświetlanie standardowego nagłówka i stopki dla listy zawartości katalogu (263)
  • 12.3. Wykorzystanie arkusza stylów (263)
  • 12.4. Ukrywanie wybranych elementów na liście zawartości (264)
  • 12.5. Wyszukiwanie konkretnych plików na liście zawartości katalogu (265)
  • 12.6. Sortowanie listy zawartości (265)
  • 12.7. Sortowanie listy zawartości w sposób wskazany przez klienta (266)
  • 12.8. Definiowanie sposobu formatowania listy zawartości (268)
  • 12.9. Definiowanie sposobu formatowania przez klienta (268)
  • 12.10. Dodawanie opisów plików (269)
  • 12.11. Automatyczne generowanie tytułów dokumentów (270)
  • 12.12. Zmiana ikon listy zawartości (270)
  • 12.13. Wyświetlanie katalogów na początku listy (271)
  • 12.14. Porządkowanie względem numeru wersji (272)
  • 12.15. Włączanie sortowania względem numeru wersji przez użytkownika (273)
  • 12.16. Przydzielenie użytkownikowi pełnej kontroli nad formatem listy zawartości (273)
  • 12.17. Wyłączenie możliwości modyfikowania listy zawartości przez użytkownika (274)
  • 12.18. Pomijanie wybranych kolumn na liście zawartości (275)
  • 12.19. Wyświetlanie plików chronionych hasłem (276)
  • 12.20. Wyświetlanie aliasów na liście zawartości (277)

13. Pozostałe zagadnienia (279)

  • 13.1. Poprawne umieszczanie dyrektyw (279)
  • 13.2. Zmiana nazw plików .htaccess (281)
  • 13.3. Tworzenie listy zawartości katalogu (282)
  • 13.4. Rozwiązanie "problemu końcowego ukośnika" (283)
  • 13.5. Ustalenie zawartości pola Content-Type w zależności od możliwości przeglądarki (285)
  • 13.6. Obsługa brakującego pola Host nagłówka (285)
  • 13.7. Inny domyślny dokument (286)
  • 13.8. Konfiguracja domyślnej "ulubionej ikony" (287)
  • 13.9. Wyświetlanie listy zawartości katalogów ScriptAlias (287)
  • 13.10. Włączanie obsługi plików .htaccess (289)
  • 13.11. Przekształcanie dyrektyw Server Side Includes z serwerów IBM lub Lotus do serwera Apache (290)

A: Użycie wyrażeń regularnych (291)

B: Rozwiązywanie problemów (297)

Skorowidz (307)

  • Title: Apache. Receptury. Wydanie II
  • Author: Rich Bowen, Ken Coar
  • Original title: Apache Cookbook: Solutions and Examples for Apache Administration (Cookbook)
  • Translation: Daniel Kaczmarek
  • ISBN: 978-83-246-5960-9, 9788324659609
  • Date of issue: 2012-10-16
  • Format: Ebook
  • Item ID: apare2
  • Publisher: Helion