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

Apache
Logo Apache
Logo programu
Autor Apache Software Foundation
Aktualna wersja stabilna 2.4.67
(4 maja 2026) [±]
System operacyjny GNU/Linux, OS X, Windows
Rodzaj Serwer WWW
Licencja Apache License
Strona internetowa

Popularność

edytuj

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%[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]:

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[3].

Cechy serwera i obsługiwane moduły

edytuj

Historia

edytuj

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

edytuj

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

edytuj
  • środowisko serwera
  • podstawowe parametry sieciowe
  • lista dołączanych modułów

Main server configuration

edytuj
  • 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

edytuj
  • 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ż

edytuj

Przypisy

edytuj
  1. a b May 2020 Web Server Survey [online], Netcraft News, 26 maja 2020 [dostęp 2020-06-12] (ang.).
  2. Statystyki polskiego Internetu amudom.pl [online], www.amudom.pl [dostęp 2017-02-16] [zarchiwizowane z adresu 2017-02-17] (pol.).
  3. Hosting Provider Server Count [online], 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 [online], 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 [online], httpd.apache.org [dostęp 2019-12-30].
  7. Apache Week. Apache 2 Release [online], www.apacheweek.com [dostęp 2019-12-30].
  8. Apache 2.0 CHANGES [online].
  9. Overview of new features in Apache 2.2 - Apache HTTP Server Version 2.2 [online], httpd.apache.org [dostęp 2019-12-30].
  10. Apache 2.2 Changes [online].
  11. Upgrading to 2.4 from 2.2 - Apache HTTP Server Version 2.4 [online], 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 [online], httpd.apache.org [dostęp 2019-12-30].
  13. Apache 2.4 Changes [online].
  14. Contents of STATUS [online], Apache-SVN, 27 grudnia 2019 [dostęp 2019-12-30].

Linki zewnętrzne

edytuj

📚 Artikel Terkait di Wikipedia

Windows API

Windows API, lub krócej: WinAPI – interfejs programistyczny systemu Microsoft Windows – jest to zbiór niezbędnych funkcji, stałych i zmiennych umożliwiających

Apache Solr

regularne wydania. Zarówno Apache Lucene jak i Apache Solr są obecnie rozwijane przez ten sam zespół programistów w Apache Software Foundation. 2004:

Apache Lucene

przez Apache Software Foundation i wydana na licencji Apache Software License. Biblioteka Apache Lucene jest napisana w języku Java i oferuje API z poziomu

Spring Framework

języki), Velocity, Tiles, iText, Apache POI. Środkową powłokę można łatwo połączyć z powłoką innego szablonu MVC, w tym Apache Struts, WebWork(inne języki)

Node.js

Joyent, w której pracował. Dahl skrytykował wówczas ograniczone możliwości Apache HTTP Server, najpopularniejszego serwera WWW do obsługi wielu równoczesnych

IntelliJ IDEA

narzędziami deweloperskimi open source takimi jak Git, CVS, SVN, Apache Ant, Apache Maven, JUnit i TestNG. Istnieje również wiele pluginów rozszerzających

Java Platform, Enterprise Edition

Framework (JAF) 1.1 JavaMail API 1.4.1 Java Message Service API Java Persistence API Java Transaction API (JTA) 1.1 Java API for RESTful Web Services (JAX-RS)

Serwlet

GlassFish) albo kontenera webowego (np. Apache Tomcat). Jako część platformy JEE, serwlety mają dostęp do całego API Javy. Nazwa Serwlet powstała na wzór