Apache –otwartyserwerHTTP dostępny dla wielusystemów operacyjnych (m.in.UNIX,GNU/Linux,BSD,OS X,Microsoft Windows).
Apache jest jednym z szeroko stosowanych serwerów HTTP wInternecie. W maju 2020 (według serwisu Netcraft) jego udział wśród wszystkich serwerów wynosił ponad 25%[1]. Według nieistniejącego już serwisu Amudom, wśród polskich domen ok. 53% serwerów używało Apache w 2017 roku[2].
Statystyki wykorzystania serwerów WWW (dane z maja 2020 według serwisuNetcraft)[1]:
| 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 zaserwerem proxy, to może nie być to uwzględnione[3].
Serwer Apache wywodzi się z kodu serweraNCSA HTTPd[4] napisanego przez Roba McCoola, pracownikaNCSA.
- 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[5].
- 2002-2013 – wersja 2.0 to wsparcie wielowątkowości, bardziej elastyczne API dla modułów, a także wsparcieIPv6 iUTF-8 w nazwach plików[6][7][8]. Wydane zostały również nowe moduły między innymi do szyfrowania (mod_ssl) czy do kompresji danych (mod_deflate)[6].
- 2005-2017 – wersja 2.2 dodała m.in. nowe moduły do cachowania, proxy AJP (do serweraTomcat) i obsługę plików większych niż 2 GB[9][10].
- 2012-teraz – wersja 2.4 zmienia sposób konfiguracji ograniczenia dostępu (stare dyrektywyDeny, Allow należy zastąpićRequire)[11]; sekcjeIf,Else umożliwiają warunkowe konfiguracje na podstawie konkretnego żądania (podobnie jak w poprzednich wersjach za pomocąmod_rewrite); od wersji 2.4.36 wspieraTLS 1.3[12][13].
Trwają prace nad nową wersją oznaczoną roboczo 2.5, ostateczna wersja będzie miała oznaczenie 2.6 lub 3.0[14].
Najnowsze wersje serwera Apache posiadają interfejs graficznyGUI. Program Apacheparsuje plik konfiguracyjny httpd.conf (oraz inne zdefiniowane przez użytkownika, bądź sam program).
Plik konfiguracyjny dystrybucji Apache z serii 2.0 zawiera sekcje:
- środowisko serwera
- podstawowe parametry sieciowe
- lista dołączanych modułów
- położenie dokumentów
- połączenie
- aliasy
- określenie dostępu do zasobów
- formaty i położenie dzienników serwera
- modułyCGI
- opcje automatycznego indeksowania katalogów
- Content Negotation (ang. negocjacja treści)
- własne dokumenty błędów serwera (dyrektywyErrorDocument)
- konfiguracja modułu mod_proxy
- odwrotnyDNS
- 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.
- ↑abMay 2020 Web Server Survey [online], Netcraft News, 26 maja 2020 [dostęp 2020-06-12] (ang.).
- ↑Statystyki polskiego Internetu amudom.pl [online], www.amudom.pl [dostęp 2017-02-16] [zarchiwizowane zadresu 2017-02-17] (pol.).
- ↑Hosting Provider Server Count [online], Netcraft [dostęp 2020-06-11] (ang.).
- ↑The NCSA HTTPd homepage. hoohoo.ncsa.uiuc.edu. [zarchiwizowane ztego adresu (2009-04-15)].
- ↑New features with Apache 1.3 [online], httpd.apache.org [dostęp 2019-12-30] [zarchiwizowane zadresu 2016-06-29] .
- ↑abOverview of new features in Apache 2.0 - Apache HTTP Server [online], httpd.apache.org [dostęp 2019-12-30] .
- ↑Apache Week. Apache 2 Release [online], www.apacheweek.com [dostęp 2019-12-30] .
- ↑Apache 2.0 CHANGES [online] .
- ↑Overview of new features in Apache 2.2 - Apache HTTP Server Version 2.2 [online], httpd.apache.org [dostęp 2019-12-30] .
- ↑Apache 2.2 Changes [online] .
- ↑Upgrading to 2.4 from 2.2 - Apache HTTP Server Version 2.4 [online], httpd.apache.org [dostęp 2019-12-30] .
- ↑Overview of new features in Apache HTTP Server 2.4 - Apache HTTP Server Version 2.4 [online], httpd.apache.org [dostęp 2019-12-30] .
- ↑Apache 2.4 Changes [online] .
- ↑Contents of STATUS [online], Apache-SVN, 27 grudnia 2019 [dostęp 2019-12-30] .