Instalacja i konfiguracja serwera Apache lub Nginx w systemie Linux
Serwery WWW, takie jak Apache i Nginx, stanowią podstawę wielu stron internetowych i aplikacji działających w Internecie. Są one odpowiedzialne za obsługę zapytań HTTP i HTTPS, dostarczanie treści użytkownikom oraz zarządzanie różnymi protokołami sieciowymi. W tym artykule omówimy, jak zainstalować i skonfigurować serwery Apache i Nginx na systemie Linux, obejmując zarówno podstawową instalację, jak i zaawansowaną konfigurację.
1. Co to jest serwer WWW?
Serwer WWW (World Wide Web) jest oprogramowaniem, które umożliwia wyświetlanie treści w Internecie. Działa na zasadzie obsługi żądań HTTP, na które odpowiada plikami lub informacjami, które są wyświetlane przez przeglądarki internetowe. Apache i Nginx to dwa najpopularniejsze serwery WWW w systemach Linux, każdy z nich ma swoje zalety i zastosowanie.
- Apache to elastyczny serwer, który obsługuje zarówno dynamiczne strony, jak i statyczne treści.
- Nginx jest znany ze swojej wydajności i jest powszechnie używany do obsługi aplikacji statycznych lub jako serwer proxy dla innych aplikacji.

2. Instalacja serwera Apache
2.1. Instalacja Apache na Ubuntu/Debian
Apache jest dostępny w oficjalnych repozytoriach systemów Ubuntu i Debian. Aby go zainstalować, użyj następujących poleceń:
sudo apt update
sudo apt install apache2
Po zakończeniu instalacji uruchom serwer:
sudo systemctl start apache2
sudo systemctl enable apache2
Aby sprawdzić, czy Apache działa poprawnie, otwórz przeglądarkę i wprowadź adres http://localhost. Jeśli wszystko jest w porządku, powinieneś zobaczyć stronę powitalną Apache.
2.2. Instalacja Apache na CentOS/RHEL/Fedora
Na systemach opartych na Red Hat, takich jak CentOS i Fedora, użyj poniższego polecenia:
sudo yum install httpd
Po zainstalowaniu Apache uruchom go oraz ustaw automatyczne uruchamianie:
sudo systemctl start httpd
sudo systemctl enable httpd
Podobnie jak w przypadku Ubuntu, wejdź na adres http://localhost, aby upewnić się, że Apache działa prawidłowo.
3. Instalacja serwera Nginx
3.1. Instalacja Nginx na Ubuntu/Debian
Aby zainstalować Nginx na Ubuntu lub Debian, wykonaj następujące kroki:
sudo apt update
sudo apt install nginx
Po zakończeniu instalacji uruchom serwis Nginx:
sudo systemctl start nginx
sudo systemctl enable nginx
Aby upewnić się, że serwer działa, otwórz przeglądarkę i przejdź do http://localhost. Powinna wyświetlić się strona powitalna Nginx.
3.2. Instalacja Nginx na CentOS/RHEL/Fedora
Na systemach CentOS, RHEL lub Fedora instalacja Nginx wygląda następująco:
sudo yum install epel-release
sudo yum install nginx
Po zainstalowaniu uruchom serwis:
sudo systemctl start nginx
sudo systemctl enable nginx
Podobnie jak w przypadku Apache, po zainstalowaniu sprawdź, czy Nginx działa poprawnie, przechodząc do http://localhost.
4. Konfiguracja serwera Apache
4.1. Główne pliki konfiguracyjne Apache
W Apache główny plik konfiguracyjny to:
/etc/apache2/apache2.conf(Debian/Ubuntu)/etc/httpd/conf/httpd.conf(CentOS/Fedora)
Pliki konfiguracyjne wirtualnych hostów znajdują się w:
/etc/apache2/sites-available/(Debian/Ubuntu)/etc/httpd/conf.d/(CentOS/Fedora)
4.2. Konfiguracja wirtualnych hostów Apache
W celu utworzenia wirtualnego hosta w Apache, przejdź do katalogu /etc/apache2/sites-available/ i utwórz plik konfiguracyjny. Oto przykład podstawowej konfiguracji wirtualnego hosta:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName example.com
DocumentRoot /var/www/html/example
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Aby aktywować ten plik konfiguracyjny, użyj polecenia:
sudo a2ensite example.com.conf
sudo systemctl reload apache2
4.3. Optymalizacja Apache
Aby poprawić wydajność, warto włączyć następujące moduły:
- mod_rewrite – do przekierowań URL.
- mod_ssl – aby obsługiwać połączenia HTTPS.
- mod_deflate – do kompresji treści.
- mod_cache – do buforowania zasobów.
5. Konfiguracja serwera Nginx
5.1. Główne pliki konfiguracyjne Nginx
Główne pliki konfiguracyjne Nginx znajdują się w katalogu /etc/nginx/. Oto najważniejsze z nich:
/etc/nginx/nginx.conf– główny plik konfiguracyjny./etc/nginx/sites-available/– pliki wirtualnych hostów./etc/nginx/sites-enabled/– aktywowane pliki wirtualnych hostów.
5.2. Konfiguracja wirtualnych hostów Nginx
Aby skonfigurować Nginx do obsługi wirtualnych hostów, utwórz plik konfiguracyjny w katalogu /etc/nginx/sites-available/. Oto przykład:
server {
listen 80;
server_name example.com;
root /var/www/html/example;
location / {
try_files $uri $uri/ =404;
}
}
Aby aktywować plik konfiguracyjny, utwórz dowiązanie symboliczne w katalogu /etc/nginx/sites-enabled/:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo systemctl reload nginx
5.3. Optymalizacja Nginx
Aby zoptymalizować działanie Nginx, możesz skonfigurować:
- keepalive_timeout – zwiększenie liczby aktywnych połączeń.
- gzip – włączenie kompresji.
- SSL – konfiguracja HTTPS z certyfikatem SSL.
- Caching – buforowanie zasobów, aby przyspieszyć czas ładowania.
6. Wybór serwera: Apache vs. Nginx
Decyzja o wyborze serwera zależy od rodzaju aplikacji:
- Apache jest bardziej elastyczny i oferuje wsparcie dla dynamicznych aplikacji, takich jak PHP.
- Nginx jest bardziej wydajny w przypadku aplikacji statycznych, a także może być używany jako serwer proxy dla Apache lub innych aplikacji.
W wielu przypadkach połączenie Nginx jako serwera proxy przed Apache pozwala na osiągnięcie najlepszych wyników wydajnościowych.
7. Podsumowanie
Instalacja i konfiguracja Apache lub Nginx w systemie Linux to kluczowy element zarządzania stronami internetowymi i aplikacjami. Apache jest wszechstronny i sprawdza się w dynamicznych aplikacjach, natomiast Nginx jest idealny dla aplikacji statycznych oraz serwerów proxy. Zrozumienie, jak skonfigurować i zoptymalizować te serwery, pomoże zapewnić wydajność, bezpieczeństwo oraz elastyczność w obsłudze ruchu sieciowego.
Pamiętaj, że wybór odpowiedniego serwera WWW zależy od charakterystyki Twoich aplikacji, a ich konfiguracja będzie miała duży wpływ na szybkość ładowania stron oraz ogólną wydajność serwera.






