Apache
Apache (formalnie Apache HTTP Server, potocznie „httpd”) to otwartoźródłowy serwer WWW rozwijany przez Apache Software Foundation od 1995 roku. Jego zadaniem jest przyjmowanie żądań HTTP i HTTPS od przeglądarek oraz zwracanie odpowiedzi: plików statycznych, stron generowanych przez PHP czy przekierowań. Przez dwie dekady Apache był najpopularniejszym serwerem WWW świata i do dziś napędza ogromną część hostingu współdzielonego.
Jak działa Apache?
Apache ma budowę modułową — rdzeń serwera rozszerza się modułami ładowanymi w konfiguracji: mod_rewrite (przepisywanie adresów), mod_ssl (szyfrowanie TLS), mod_headers, mod_security (firewall aplikacyjny) i wieloma innymi. Sposób obsługi ruchu określa wybrany moduł MPM: klasyczny prefork (osobny proces na połączenie, wymagany przez mod_php), worker oraz wydajny event, zwykle łączony z PHP-FPM. Unikatową cechą Apache jest obsługa plików .htaccess — użytkownik może zmieniać zachowanie serwera (przekierowania, blokady, nagłówki) we własnym katalogu, bez dostępu do głównej konfiguracji i bez restartu usługi.
Zastosowanie w praktyce
Apache to domyślny serwer w większości paneli hostingowych (DirectAdmin, cPanel, Plesk), właśnie dzięki .htaccess i wieloletniej kompatybilności z aplikacjami PHP — WordPress, PrestaShop czy Joomla publikują gotowe reguły mod_rewrite dla przyjaznych adresów URL. Na hostingu współdzielonym klient dostaje więc pełną kontrolę nad przekierowaniami i zabezpieczeniami swojego katalogu, mimo że serwerem zarządza dostawca.
W konfiguracjach o dużym ruchu Apache często pracuje w duecie z Nginx: lekki serwer zdarzeniowy terminuje połączenia i serwuje pliki statyczne, a żądania dynamiczne przekazuje do Apache. Administrator ma też do dyspozycji alternatywy zgodne ze składnią Apache, jak LiteSpeed. Wybór zwykle sprowadza się do kompromisu między elastycznością konfiguracji per katalog a surową wydajnością przy tysiącach równoczesnych połączeń.
Powiązane pojęcia
Najczęstsze pytania
Czym różni się Apache od Nginx?
Apache przetwarza żądania w modelu procesów/wątków i pozwala nadpisywać konfigurację plikami .htaccess w katalogach stron, co jest wygodne na hostingu współdzielonym. Nginx działa asynchronicznie na pętli zdarzeń, przez co lepiej znosi tysiące równoczesnych połączeń, ale całą konfigurację trzyma centralnie. W praktyce często łączy się oba: Nginx jako reverse proxy przed Apache.
