Apache HTTP Server

Apache
Logo Apache
Logo programu
ilustracja
AutorApache Software Foundation
Aktualna wersja stabilna2.4.54
(8 czerwca 2022) [±]
System operacyjnyGNU/Linux, OS X, Windows
RodzajSerwer WWW
LicencjaApache License
Strona internetowa

Apacheotwarty 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 serwerem HTTP w Internecie. 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 serwisu Netcraft)[1]:

nginx445 724 55036,00%
Apache315 019 26225,45%
Microsoft155 042 31112,52%
Google44 304 8673,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[3].

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[4] 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[5].
  • 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[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 serwera Tomcat) 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 dyrektywy Deny, Allow należy zastąpić Require)[11]; 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[12][13].

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

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ż

Przypisy

  1. a b May 2020 Web Server Survey, Netcraft News, 26 maja 2020 [dostęp 2020-06-12] (ang.).
  2. Statystyki polskiego Internetu amudom.pl, www.amudom.pl [dostęp 2017-02-16] [zarchiwizowane z adresu 2017-02-17] (pol.).
  3. Hosting Provider Server Count, Netcraft [dostęp 2020-06-11] (ang.).
  4. The NCSA HTTPd homepage. hoohoo.ncsa.uiuc.edu. [zarchiwizowane z tego adresu (2009-04-15)].
  5. New features with Apache 1.3, httpd.apache.org [dostęp 2019-12-30] [zarchiwizowane z adresu 2016-06-29].
  6. a b Overview of new features in Apache 2.0 - Apache HTTP Server, httpd.apache.org [dostęp 2019-12-30].
  7. Apache Week. Apache 2 Release, www.apacheweek.com [dostęp 2019-12-30].
  8. Apache 2.0 CHANGES.
  9. Overview of new features in Apache 2.2 - Apache HTTP Server Version 2.2, httpd.apache.org [dostęp 2019-12-30].
  10. Apache 2.2 Changes.
  11. Upgrading to 2.4 from 2.2 - Apache HTTP Server Version 2.4, httpd.apache.org [dostęp 2019-12-30].
  12. Overview of new features in Apache HTTP Server 2.4 - Apache HTTP Server Version 2.4, httpd.apache.org [dostęp 2019-12-30].
  13. Apache 2.4 Changes.
  14. Contents of STATUS, Apache-SVN, 27 grudnia 2019 [dostęp 2019-12-30].

Linki zewnętrzne

Media użyte na tej stronie

Apache default page.png
Autor: Apache project, Licencja: MIT
Unbranded default page of the Apache webserver as rendered by Mozilla Firefox. HTML source code:
<html><head>
<meta http-equiv="content-type" content="text/html; charset=windows-1252"></head><body><h1>It works!</h1>
<p>This is the default web page for this server.</p>
<p>The web server software is running but no content has been added, yet.</p>

Fri, 13 Sep 2019 23:42:17 -0500</body></html>
Apache HTTP server logo (2016).png
Autor: Apache Software Foundation, Licencja: Apache License 2.0
The new logo of Apache HTTP server, with wordmark and "™" removed