NGINX - publikacja prostej strony na serwerze

💡 Autorem poradnika jest Ozelot.

W tym poradniku pokażę ci jak opublikować na serwerze swoją pierwszą stronę przy użyciu Nginx. Zajmiemy się tutaj statyczną stroną. Jeżeli szukasz informacji o reverse proxy znajdziesz je tutaj, natomiast informacje o instalacji i konfiguracji PHP znajdziesz tutaj.

Zakładam, że posiadasz swoją domenę i podpiąłeś(-aś) ją prawidłowo aby wskazywała na twój serwer lub dodałeś(-aś) darmową subdomenę (nie dotyczy Froga) wskazującą na dowolny port, bądź chcesz użyć współdzielonej subdomeny Froga.

Przykładowa strona

Strona którą chcemy opublikować może być zbudowana w mniej więcej taki sposób. Oto przykład naszej strony:

.
├── index.html
├── style.css
└── pages
    ├── about.html
    └── contact.html

Nie będzie tutaj backendu ani bazy danych - prosta strona-wizytówka.

Instalacja NGINX

Na dystrybucjach bazujących na Debianie (w tym Ubuntu) zainstalujemy za pomocą apt.

apt install nginx

Natomiast w dystrybucjach takich jak Alpine (dotyczy serwerów Frog) zrobimy to za pomocą apk.

apk add nginx

W dalszej części poradnika przy wyszczególnianiu poszczególnych opcji dla wyżej wymienionych grup dystrybucji będę posługiwał się nazwami Debian i Alpine.

Umieszczenie plików strony

Po udanej instalacji możemy przejść do konfiguracji. Jednak zanim to zrobimy, najpierw umieścimy pliki strony na serwerze. Można wybrać dowolny katalog, jednak najczęściej używa się do tego /var/www.

Na potrzeby tego poradnika umieścimy naszą stronę w /var/www/pierwszastrona:

/
└── var
    └── www
        └── pierwszastrona
            ├── index.html
            ├── style.css
            └── pages
                ├── about.html
                └── contact.html

Kolejnym krokiem będzie ustawienie uprawnień do folderu naszej strony tak, aby NGINX mógł go odczytać. Aby to zrobić musimy znać nazwę użytkownika jakim posługuje się NGINX. Domyślnie w przypadku Debiana jest to www-data, a Alpine - nginx. Możemy to sprawdzić lub zmienić w /etc/nginx/nginx.conf. Uprawnienia 755 będą odpowiednie.

Dla Debiana:

chown -R www-data:www-data /var/www/pierwszastrona
chmod -R 755 /var/www/pierwszastrona

Dla Alpine:

chown -R nginx:nginx /var/www/pierwszastrona
chmod -R 755 /var/www/pierwszastrona

Przygotowanie pliku konfiguracyjnego strony

Teraz możemy przejść do właściwej konfiguracji webserwera.

Główny katalog z plikami konfiguracyjnymi znajdziemy w /etc/nginx. Stworzymy teraz plik konfiguracyjny dla naszej strony.

Dla Debiana:

W katalogu /etc/nginx znajdują się między innymi dwa podkatalogi - sites-available i sites-enabled. Przejdź do sites-available i utwórz plik o dowolnej nazwie. Na potrzeby poradnika będzie to pierwszastrona.conf. Bezwzględna ścieżka do tego pliku powinna więc wyglądać tak:

/etc/nginx/sites-available/pierwszastrona.conf

Zanim przejdziemy do pisania treści pliku konfiguracyjnego, należy stworzyć jego skrót w katalogu sites-enabled.

W tym celu użyj:

ln -s /etc/nginx/sites-available/pierwszastrona.conf /etc/nginx/sites-enabled/

Dla Alpine:

W katalogu /etc/nginx znajduje się między innymi podkatalog http.d. Przejdź do niego i utwórz plik o dowolnej nazwie. Na potrzeby poradnika będzie to pierwszastrona.conf. Bezwzględna ścieżka do tego pliku powinna więc wyglądać tak:

/etc/nginx/http.d/pierwszastrona.conf

Właściwa konfiguracja strony

Teraz zajmiemy się stworzeniem właściwej konfiguracji. Wykorzystamy do tego plik utworzony w poprzednim kroku.

Otwórz go i wklej następującą treść:

server {
    listen [::]:80; # twój port
    server_name example.com; # twoja domena
    root /var/www/pierwszastrona; # ścieżka do plików strony
    index index.html;
    location / {
        try_files $uri $uri/ =404;
    }
}

Należy tu zwrócić uwagę na kilka rzeczy, które musisz zmienić:

  • listen [::]:80; - Numer oznacza port na którym serwer ma nasłuchiwać.
    • Jeśli planujesz wystawić stronę na własnej domenie, zostaw bez zmian.
    • Jeśli chcesz użyć darmowej subdomeny (nie dotyczy Froga) możesz podać tutaj dowolny, wolny port (uwaga: nie musi być to jeden z portów IPv4 przypisanych do twojego serwera, gdyż operujemy tu na IPv6 i masz do dyspozycji wszystkie porty. Może to też być domyślny port 80. Jeśli chcesz skorzystać z tej opcji, pamiętaj żeby przy dodawaniu darmowej subdomeny wybrać ten sam port, który będzie w konfiguracji.
    • Jeśli chcesz użyć współdzielonej subdomeny Froga musisz użyć jednego z portów IPv4 przypisanych do twojego Froga. W tym przypadku powinno to wyglądać w ten sposób: listen XXXX;.
  • server_name example.com; - Zamień example.com na twoją domenę lub darmową subdomenę.
  • root /var/www/pierwszastrona; - Katalog wskazujący na pliki twojej strony.

Już prawie gotowe. Kolejną czynnością będzie sprawdzenie poprawności konfiguracji:

nginx -t

Jeśli polecenie nie zwróciło żadnych błędów, możemy zrestartować NGINX aby nasze zmiany zaczęły obowiązywać.

Dla Debiana:

systemctl restart nginx

Dla Alpine:

service nginx restart

Jeśli wszystko przebiegło prawidłowo, twoja strona powinna być już widoczna pod wskazaną domeną.

Powrót do strony głównej