Nginx to jeden z najpopularniejszych serwerów WWW na świecie. Oryginalnie napisany aby rozwiązać "problem C10k" (obsługę 10,000 jednoczesnych połączeń), wyewoluował w domyślny wybór dla stron internetowych wysokiej wydajności. Czy to serwujesz statyczne pliki HTML, uruchamiasz API Node.js, czy konfigurujesz odwrotne proxy dla złożonego backendu, Nginx jest dokładnie tym czego potrzebujesz.
Instalacja Nginx na dowolnym serwerze Linux działającym na Ubuntu lub Debian zajmuje mniej niż 15 minut.
Krok 1: Zainstaluj Nginx
Ponieważ Nginx jest dostępny w domyślnych repozytoriach Ubuntu i Debian, jest prosty do zainstalowania używając menedżera pakietów apt.
Przed instalacją jakiegokolwiek nowego oprogramowania, odśwież swój lokalny indeks pakietów:
sudo apt update
Teraz zainstaluj Nginx:

sudo apt install nginx -y
Ubuntu i Debian automatycznie uruchamiają usługę Nginx natychmiast po zakończeniu instalacji.
Krok 2: Dostosuj zaporę
Jeśli włączyłeś zaporę UFW (jak mocno zalecamy w naszym Przewodniku Konfiguracji UFW), musisz zezwolić na połączenia do Nginx tak aby świat zewnętrzny mógł dotrzeć do twoich stron internetowych.
Podczas instalacji, Nginx rejestruje się z UFW aby dostarczyć kilka automatycznych profili aplikacji. Możesz je zobaczyć wpisując:

sudo ufw app list
Powinieneś zobaczyć:
Available applications:
Nginx Full
Nginx HTTP
Nginx HTTPS
OpenSSH
- Nginx HTTP: Otwiera port 80 (normalny, niezaszyfrowany ruch WWW).
- Nginx HTTPS: Otwiera port 443 (zaszyfrowany ruch TLS/SSL).
- Nginx Full: Otwiera zarówno port 80 jak i 443.
Dla ogromnej większości przypadków, ostatecznie będziesz chciał certyfikat SSL, więc najlepiej zezwolić na oba od razu:

sudo ufw allow 'Nginx Full'
Zweryfikuj że zmiana została pomyślnie zastosowana:
sudo ufw status
Krok 3: Sprawdź swój serwer WWW
W tym momencie, twój serwer WWW jest w pełni operacyjny. Aby to zweryfikować, otwórz swoją ulubioną przeglądarkę internetową i nawiguj do publicznego adresu IP swojego serwera.
Jeśli nie znasz publicznego adresu IP swojego serwera, możesz go znaleźć uruchamiając:

curl -4 icanhazip.com
Wpisz ten adres IP w przeglądarce: http://your_server_ip

Powinieneś zobaczyć domyślną stronę lądowania "Welcome to nginx!". To potwierdza że oprogramowanie działa poprawnie i że twoja zapora zezwala na ruch.
Krok 4: Zarządzaj procesem Nginx
Teraz gdy masz swój serwer WWW uruchomiony i działający, musisz wiedzieć jak nim zarządzać. Będziesz używać poleceń systemctl do kontrolowania usługi Nginx.
Aby zatrzymać serwer WWW:

sudo systemctl stop nginx
Aby uruchomić serwer WWW gdy jest zatrzymany:

sudo systemctl start nginx
Aby zatrzymać a następnie całkowicie zrestartować usługę:

sudo systemctl restart nginx
Jeśli tylko dokonałeś zmian konfiguracyjnych (jak dodanie nowej domeny), Nginx może przeładować bez rozłączania aktywnych połączeń. To jest polecenie którego będziesz używać najczęściej:

sudo systemctl reload nginx
Krok 5: Skonfiguruj Blok Serwera (Wirtualny Host)
Domyślnie, Nginx na Ubuntu ma jeden blok serwera włączony który serwuje dokumenty z katalogu /var/www/html. Podczas gdy to działa dobrze dla pojedynczej strony, staje się niezarządzalne jeśli hostujesz wiele stron.
Zamiast modyfikować domyślną konfigurację, powinieneś stworzyć Blok Serwera dla swojej domeny (w świecie Apache, te są nazywane Wirtualnymi Hostami).
Dla tego przykładu, użyjemy your_domain.com.
1. Utwórz katalog dla swojej domeny

sudo mkdir -p /var/www/your_domain.com/html
2. Przypisz własność katalogu
Przypisz własność do obecnego użytkownika niestandardowego (tak abyś mógł łatwo przesyłać pliki później):
sudo chown -R $USER:$USER /var/www/your_domain.com/html
3. Utwórz przykładową stronę index.html

nano /var/www/your_domain.com/html/index.html
Wklej ten prosty HTML do pliku:
<html>
<head>
<title>Witaj na your_domain.com!</title>
</head>
<body>
<h1>Sukces! Blok serwera your_domain.com działa!</h1>
</body>
</html>
Zapisz i zamknij plik.
4. Utwórz konfigurację bloku serwera Nginx
Teraz musimy powiedzieć Nginx aby serwował ten folder gdy ktoś odwiedza your_domain.com. Utwórz nowy plik konfiguracyjny w katalogu sites-available:

sudo nano /etc/nginx/sites-available/your_domain.com
Wklej następującą bazę konfiguracyjną:
server {
listen 80;
listen [::]:80;
root /var/www/your_domain.com/html;
index index.html index.htm index.nginx-debian.html;
server_name your_domain.com www.your_domain.com;
location / {
try_files $uri $uri/ =404;
}
}
Zapisz i zamknij plik.
5. Włącz plik poprzez linkowanie go do sites-enabled
Nginx ignoruje pliki w sites-available chyba że mają dowiązanie symboliczne umieszczone w katalogu sites-enabled. Utwórz to dowiązanie teraz:

sudo ln -s /etc/nginx/sites-available/your_domain.com /etc/nginx/sites-enabled/
6. Przetestuj konfigurację i przeładuj
Przed restartem Nginx, zawsze testuj konfigurację aby upewnić się że nie ma błędów składni:

sudo nginx -t
Jeśli wynik mówi syntax is ok i test is successful, przeładuj Nginx aby zastosować zmiany:
sudo systemctl reload nginx
Nginx powinien teraz serwować twoją nazwę domeny. Zakładając że zaktualizowałeś rekordy DNS-A swojej domeny aby wskazywały na adres IP twojego VPS, nawigacja do http://your_domain.com pokaże stronę sukcesu którą właśnie stworzyłeś.
Jeśli szukasz wysoce niezawodnego i błyskawicznie szybkiego środowiska do hostowania swojego nowego serwera Nginx, uruchom jedną z naszych instancji Premium VPS i wdróż swoje projekty już dziś.