Apache / Nginx – serwer WWW (INF.02)
1. Czym jest Apache i Nginx?
Apache HTTP Server
To jeden z najpopularniejszych serwerów WWW na świecie.
Jego zadania:
Nginx
Alternatywa dla Apache:
Instalacja (Ubuntu / Linux)
Apache:
sudo apt update
sudo apt install apache2 -y
Nginx:
sudo apt update
sudo apt install nginx -y
Uruchamianie i zarządzanie usługą
(systemd – bardzo ważne na egzaminie)
Apache:
sudo systemctl start apache2
sudo systemctl stop apache2
sudo systemctl restart apache2
sudo systemctl status apache2
sudo systemctl enable apache2
Nginx:
sudo systemctl start nginx
sudo systemctl enable nginx
enable = uruchamianie przy starcie systemu
4. Sprawdzenie działania
W przeglądarce:
http://localhost
lub:
curl localhost
5. Katalog strony WWW
/var/www/html
To domyślny katalog stron WWW
plik startowy:
index.html
Przykład:
cd /var/www/html
sudo nano index.html
Wpisz:
<h1>Moja strona działa!</h1>
6. Uprawnienia (częsty temat!)
sudo chown -R www-data:www-data /var/www/html
sudo chmod -R 755 /var/www/html
www-data = użytkownik serwera WWW
7. Konfiguracja Apache
Pliki konfiguracyjne:
/etc/apache2/
Najważniejsze:
apache2.conf
sites-available/
sites-enabled/
Virtual Host (bardzo ważne!)
Tworzenie nowej strony:
sudo nano /etc/apache2/sites-available/mojastrona.conf
Przykład:
<VirtualHost *:80>
ServerName mojastrona.local
DocumentRoot /var/www/mojastrona
<Directory /var/www/mojastrona>
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
Aktywacja:
sudo a2ensite mojastrona.conf
sudo systemctl reload apache2
8. Konfiguracja Nginx
Pliki:
/etc/nginx/sites-available/
/etc/nginx/sites-enabled/
Przykład:
sudo nano /etc/nginx/sites-available/mojastrona
server {
listen 80;
server_name mojastrona.local;
root /var/www/mojastrona;
index index.html;
}
Aktywacja:
sudo ln -s /etc/nginx/sites-available/mojastrona /etc/nginx/sites-enabled/
sudo systemctl restart nginx
9. Przydatne komendy (must-have)
sudo systemctl status apache2
sudo systemctl restart apache2
sudo apache2ctl configtest
sudo systemctl status nginx
sudo nginx -t
-t = sprawdzenie konfiguracji
10. Logi (często na egzaminie!)
Apache:
/var/log/apache2/access.log
/var/log/apache2/error.log
Nginx:
/var/log/nginx/access.log
/var/log/nginx/error.log
Podgląd:
tail -f /var/log/apache2/error.log
| Pojęcie | Wyjaśnienie |
|---|---|
| HTTP | protokół stron WWW |
| serwer WWW | program udostępniający strony |
| VirtualHost | wiele stron na jednym serwerze |
| DocumentRoot | katalog strony |
| port 80 | standardowy port HTTP |
| port 443 | HTTPS |