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