Definicja #
Apache HTTP Server (oficjalnie: httpd) to open-source'owy serwer WWW rozwijany przez Apache Software Foundation od 1995 roku. Przez ponad dekadę był najpopularniejszym serwerem webowym na świecie, a do dziś pozostaje jednym z najszerzej stosowanych rozwiązań.
Kluczowe cechy Apache HTTP Server:
- Modularność — funkcje serwera są podzielone na moduły (mod_rewrite, mod_ssl, mod_php, mod_proxy). Administratorzy włączają tylko potrzebne moduły przez
a2enmod - .htaccess — pliki konfiguracyjne na poziomie katalogu; umożliwiają zmianę zachowania serwera bez dostępu do głównej konfiguracji (URL rewriting, blokowanie dostępu, nagłówki HTTP)
- Virtual Hosts — hosting wielu domen na jednym serwerze fizycznym (
VirtualHostdyrektywa) - mod_rewrite — potężny moduł do przepisywania URL za pomocą wyrażeń regularnych; fundament przyjaznych URL-i w CMS-ach (WordPress, Drupal)
- MPM (Multi-Processing Modules) — różne modele obsługi połączeń:
prefork(jeden proces per request),worker,event(nowoczesny, zbliżony do Nginx)
Apache jest często konfrontowany z Nginx — młodszym konkurentem zaprojektowanym z myślą o wysokiej współbieżności i asynchronicznej obsłudze połączeń. Nginx jest zwykle szybszy jako reverse proxy i do serwowania plików statycznych; Apache jest bardziej elastyczny dzięki .htaccess i bogatemu ekosystemowi modułów.
Uwaga: Apache Software Foundation to oddzielna organizacja zarządzająca setkami projektów open-source (Kafka, Spark, Hadoop, Maven, Tomcat) — nie należy mylić ich z Apache HTTP Server.
Zastosowania #
- Hosting aplikacji PHP (WordPress, Drupal, Joomla) — mod_php integruje interpreter PHP bezpośrednio z procesem Apache
- Reverse proxy i load balancing — mod_proxy_balancer kieruje ruch do wielu backendów
- Serwowanie aplikacji webowych z dynamiczną konfiguracją — .htaccess pozwala deweloperom na lokalne nadpisywanie reguł bez dostępu do serwera
- Środowiska shared hosting — izolacja VirtualHostów z indywidualną konfiguracją .htaccess per użytkownik
- Obsługa SSL/TLS — mod_ssl do terminowania ruchu HTTPS
Ścieżka nauki #
Apache jest fundamentalnym elementem wiedzy sysadmina i devopsa pracującego z serwerami Linux.
Zacznij od:
- Instalacja na Ubuntu/Debian:
apt install apache2; na RHEL/CentOS:yum install httpd - Podstawy konfiguracji: pliki w
/etc/apache2/(Debian) lub/etc/httpd/(RHEL) - Virtual Hosts — hosting wielu domen, dyrektywa
<VirtualHost *:80> - Pliki .htaccess — URL rewriting, blokowanie dostępu, przekierowania
- Moduły:
a2enmod rewrite ssl headers
Następnie pogłębiaj:
- MPM event — nowoczesny model obsługi połączeń, porównanie z Nginx
- Konfiguracja SSL/TLS z certyfikatami Let's Encrypt (Certbot automatycznie konfiguruje Apache)
- mod_proxy i mod_proxy_balancer — konfiguracja jako reverse proxy dla Node.js, Java, Pythona
- Bezpieczeństwo: blokowanie dostępu do
.git, ukrywanie wersji serwera (ServerTokens Prod), nagłówki bezpieczeństwa - Porównaj z Nginx i Caddy — kiedy używać którego
FAQ #
- Czym różni się Apache od Nginx?
- Apache obsługuje każde połączenie w osobnym procesie/wątku i wspiera .htaccess do konfiguracji per-katalog. Nginx jest event-driven i asynchroniczny — lepiej radzi sobie z tysiącami jednoczesnych połączeń i serwowaniem plików statycznych. Nginx jest popularniejszy jako reverse proxy i CDN; Apache dominuje w środowiskach shared hosting z PHP.
- Co to jest .htaccess i do czego służy?
- .htaccess to plik konfiguracyjny Apache umieszczany w katalogu — pozwala nadpisywać ustawienia serwera (URL rewriting, przekierowania, blokowanie dostępu, nagłówki HTTP) bez dostępu do głównej konfiguracji serwera. Umożliwia deweloperom konfigurację zachowania serwera przez pliki w repozytorium.
- Czy Apache HTTP Server to to samo co Apache Foundation?
- Nie. Apache HTTP Server (httpd) to konkretny serwer WWW. Apache Software Foundation (ASF) to organizacja non-profit zarządzająca setkami projektów open-source: Kafka, Spark, Hadoop, Tomcat, Maven i wiele innych. Skrót 'Apache' w kontekście technologicznym może oznaczać różne projekty — należy doprecyzowywać.
- Czy warto uczyć się Apache czy lepiej Nginx?
- Obie technologie mają swoje miejsce. Nginx dominuje jako reverse proxy i serwer dla nowoczesnych aplikacji (Node.js, Python). Apache jest częstszy w środowiskach PHP i shared hosting. Znajomość obu jest atutem — warto zacząć od Nginx jako reverse proxy i poznać Apache dla obsługi legacy środowisk.
- Ile zarabia administrator Apache/Nginx?
- Linux sysadmin lub DevOps znający konfigurację serwerów webowych zarabia w Polsce od 8 000 do 20 000 zł brutto. Sama konfiguracja Apache nie jest wyróżnikiem — liczy się szerszy kontekst: Docker, Kubernetes, CI/CD, monitoring i bezpieczeństwo sieciowe.