Apache – otwarty serwer HTTP dostępny dla wielu systemów operacyjnych (m.in. UNIX, GNU/Linux, BSD, OS X, Microsoft Windows).

Popularność Apache jest jednym z szeroko stosowanych serwerów HTTP w Internecie. W maju 2020 (według serwisu Netcraft) jego udział wśród wszystkich serwerów wynosił ponad 25%. Według nieistniejącego już serwisu Amudom, wśród polskich domen ok. 53% serwerów używało Apache w 2017 roku.

Statystyki wykorzystania serwerów WWW (dane z maja 2020 według serwisu Netcraft): nginx 445 724 550 36,00% Apache 315 019 262 25,45% Microsoft 155 042 311 12,52% Google 44 304 867 3,58% Technika używana przez Netcraft polegająca na badaniu odpowiedzi serwerów ma pewne ograniczenia i może dawać zaburzone statystyki, ponieważ jest w stanie ustalić jedynie serwer zewnętrzny. Jeśli właściwy serwer jest za serwerem proxy, to może nie być to uwzględnione.

Cechy serwera i obsługiwane moduły wielowątkowość skalowalność bezpieczeństwo Kontrola dostępu/uwierzytelnianie: mod_authz_host CGI Proxy typu HTTP, Apache JServe Protocol, FTP, CONNECT: mod_proxy* SSI: mod_include Content-Negotation: mod_negotation Moduł URL-Rewriting: mod_rewrite SSL: mod_ssl możliwość osadzania interpreterów języków skryptowych, np. mod perl, mod_php czy mod_python

Historia Serwer Apache wywodzi się z kodu serwera NCSA HTTPd napisanego przez Roba McCoola, pracownika NCSA. kwiecień 1995 – wersja 0.6.2 pierwsza oficjalna wersja serwera HTTP Apache. sierpień 1995 – wersja 0.8.8 dodanie standardowego API i modularyzacja kodu. grudzień 1995 – wersja 1.0 ulepszenie modułów serwera, napisanie dokumentacji, przeniesienie serwera na wiele różnych platform systemowych. 2000 – wersja 1.3 wprowadziła m.in. dynamiczne ładowanie modułów, wsparcie dla Windows NT i Windows 2000. 2002-2013 – wersja 2.0 to wsparcie wielowątkowości, bardziej elastyczne API dla modułów, a także wsparcie IPv6 i UTF-8 w nazwach plików. Wydane zostały również nowe moduły między innymi do szyfrowania (mod_ssl) czy do kompresji danych (mod_deflate). 2005-2017 – wersja 2.2 dodała m.in. nowe moduły do cachowania, proxy AJP (do serwera Tomcat) i obsługę plików większych niż 2 GB. 2012-teraz – wersja 2.4 zmienia sposób konfiguracji ograniczenia dostępu (stare dyrektywy Deny, Allow należy zastąpić Require); sekcje If, Else umożliwiają warunkowe konfiguracje na podstawie konkretnego żądania (podobnie jak w poprzednich wersjach za pomocą mod_rewrite); od wersji 2.4.36 wspiera TLS 1.3.

Trwają prace nad nową wersją oznaczoną roboczo 2.5, ostateczna wersja będzie miała oznaczenie 2.6 lub 3.0.

Konfiguracja Najnowsze wersje serwera Apache posiadają interfejs graficzny GUI. Program Apache parsuje plik konfiguracyjny httpd.conf (oraz inne zdefiniowane przez użytkownika, bądź sam program).

Plik konfiguracyjny dystrybucji Apache z serii 2.0 zawiera sekcje:

Global Environment środowisko serwera podstawowe parametry sieciowe lista dołączanych modułów

Main server configuration położenie dokumentów połączenie aliasy określenie dostępu do zasobów formaty i położenie dzienników serwera moduły CGI opcje automatycznego indeksowania katalogów Content Negotation (ang. negocjacja treści) własne dokumenty błędów serwera (dyrektywy ErrorDocument) konfiguracja modułu mod_proxy

Virtual Hosts odwrotny DNS lista i konfiguracja ewentualnych hostów wirtualnych obsługiwanych przez maszynę

Niektóre większe moduły (np. mod_SSL) mogą posiadać własne sekcje w pliku httpd.conf bądź oddzielny plik dla własnych ustawień. Aby zmiany dokonane w plikach konfiguracyjnych zostały uwzględnione, konieczne jest zrestartowanie procesu serwera.

Zobacz też nginx Perl WebDAV .htaccess .htpasswd .htgroup ApacheBench Serwer PHP MySQL

Przypisy

Linki zewnętrzne Strona domowa projektu Dokumentacja Apache 2.4

Kategoria:Apache Software Foundation Kategoria:Oprogramowanie na licencji Apache License Kategoria:Serwery WWW Kategoria:Wolne oprogramowanie napisane w C