Jak zainstalować Nginx i skonfigurować na Centos 8

Jak zainstalować Nginx i skonfigurować na Centos 8
Nginx to szybki i lekki serwer WWW. Pliki konfiguracyjne Nginx są naprawdę proste i łatwe w pracy. To świetna alternatywa dla serwera WWW Apache. W tym artykule pokażę, jak zainstalować i skonfigurować serwer WWW Nginx na Centos 8. Więc zacznijmy.

Instalowanie Nginx:

Nginx jest dostępny w oficjalnym repozytorium pakietów Centos 8. Tak więc jest bardzo łatwy do zainstalowania.

Najpierw zaktualizuj pamięć podręczną repozytorium pakietów DNF w następujący sposób:

$ sudo dnf makeCache

Teraz zainstaluj Nginx z następującym poleceniem:

$ sudo dnf instaluj nginx

Aby potwierdzić instalację, naciśnij Y a następnie naciśnij .

Nginx należy zainstalować.

Zarządzanie usługą Nginx:

Domyślnie, nginx usługa powinna być nieaktywny (nie działa) i wyłączony (nie zaczynaj automatycznie od rozruchu).

$ sudo systemCtl status nginx

Możesz zacząć nginx usługa w następujący sposób:

$ sudo systemctl start nginx

nginx usługa powinna być działanie.

$ sudo systemCtl status nginx

Teraz dodaj nginx usługa uruchamiania systemu w następujący sposób:

$ sudo systemCtl włącz Nginx

Konfigurowanie zapory ogniowej:

Musisz skonfigurować zaporę ogniową, aby umożliwić dostęp do portu HTTP 80 i portu HTTPS 443, aby uzyskać dostęp do serwera WWW Nginx z innych komputerów w sieci.

Możesz umożliwić dostęp do portu HTTP i HTTPS za pomocą następującego polecenia:

$ sudo firewall-cmd --add-service = http, https --Permanent

Teraz, aby zmiany zaczęły się obowiązywać, uruchom następujące polecenie:

$ sudo firewall-cmd-odpowiadanie

Testowanie serwera internetowego:

Musisz znać adres IP lub nazwę domeny serwera WWW Nginx, aby uzyskać do niego dostęp.

Adres IP swojego serwera WWW Nginx możesz za pomocą następującego polecenia:

$ ip a

W moim przypadku adres IP to 192.168.20.175. Będzie dla Ciebie inaczej. Więc upewnij się, że odtąd zastąp go swoim.

Teraz odwiedź http: // 192.168.20.175 z Twojej przeglądarki internetowej. Powinieneś zobaczyć następną stronę. Oznacza to, że serwer WWW Nginx działa.

Pliki konfiguracyjne Nginx:

Pliki konfiguracyjne Nginx Web Server są w /etc/nginx/ informator.

$ Tree /etc /nginx

/etc/nginx/nginx.conf to główny plik konfiguracyjny Nginx.

Domyślny katalog główny Web Server Nginx jest /usr/share/nginx/html/. Tak więc powinieneś przechowywać pliki witryny.

Konfigurowanie podstawowego serwera internetowego:

W tej sekcji pokażę, jak skonfigurować podstawowy serwer WWW Nginx.

Najpierw weź kopię zapasową oryginalnego pliku konfiguracyjnego Nginx za pomocą następującego polecenia:

$ sudo mv -v/etc/nginx/nginx.conf/etc/nginx/nginx.conf.oryginalny

Teraz utwórz nowy plik konfiguracyjny Nginx w następujący sposób:

$ sudo nano/etc/nginx/nginx.conf

Teraz wpisz następujące wiersze w /etc/nginx/nginx.conf Plik i zapisz plik.

użytkownik Nginx nginx;
robotnik_processes auto;
error_log/var/log/nginx/błąd.dziennik;
PID /run /nginx.pid;
wydarzenia
robotnik_connections 1024;

http
obejmują/etc/nginx/mim.typy;
default_type Application/Octet-Stream;
serwer
Posłuchaj 80;
Przykład_nazowy Server_name.com www.przykład.com;
root/usr/share/nginx/html;
indeks indeksu.html;
access_log/var/log/nginx/access.dziennik;

Tutaj, użytkownik Opcja służy do ustawiania użytkownika i grupy nginx uruchom nginx odpowiednio.

error_log Opcja służy do ustawienia ścieżki pliku dziennika błędu do /var/log/nginx/błąd.dziennik. W tym miejscu będą przechowywane błędy związane z serwerem Nginx.

Główna konfiguracja serwera Nginx jest zdefiniowana w serwer sekcja wewnątrz http Sekcja. Możesz zdefiniować więcej niż jeden serwer sekcja wewnątrz http w razie potrzeby sekcja.

w serwer Sekcja,

Słuchać Opcja służy do konfigurowania Nginx do słuchania portu 80 (port HTTP) dla żądań internetowych.

Nazwa serwera Opcja służy do ustawienia jednej lub więcej nazw domen dla serwera WWW Nginx. Jeśli ustawienia DNS są prawidłowe, możesz uzyskać dostęp do serwera WWW Nginx za pomocą tych nazw domen.

access_log służy do ustawienia ścieżki pliku dziennika dostępu do /var/log/nginx/access.dziennik. Gdy ktoś próbuje uzyskać dostęp do serwera WWW Nginx, informacje o dostępie (i.mi. Adres IP, URL, kod stanu HTTP) zostanie zalogowany do tego pliku.

Lokalizacja Opcja służy do ustawienia katalogu głównego serwera WWW Nginx.

Tutaj źródło katalog jest /usr/share/nginx/html/.

W tym miejscu należy przechowywać wszystkie pliki witryny. indeks Zestawy opcji indeks.html Jako domyślny plik do obsługi, jeśli nie jest wymagany żaden konkretny plik. Na przykład, jeśli odwiedzisz http: // 192.168.20.175/Myfile.html, wtedy Nginx powróci mój plik.html plik. Ale jeśli odwiedzisz http: // 192.168.20.175/, wtedy Nginx wyśle ​​Ci indeks.plik HTML, ponieważ nie żądano konkretnego pliku.

Teraz usuń wszystkie pliki z /usr/share/nginx/html/ Katalog (root internetowy) w następujący sposób:

$ sudo rm -rfv/usr/share/nginx/html/*

Teraz stwórz nowe indeks.html plik w /usr/share/nginx/html/ katalog w następujący sposób:

Teraz wpisz następujące wiersze w indeks.html Plik i zapisz plik.

Witaj świecie


© 2020 Linuxhint.com

Teraz uruchom ponownie nginx usługa w następujący sposób:

$ sudo systemctl restart nginx

Teraz odwiedź http: // 192.168.20.175 z przeglądarki internetowej i powinieneś zobaczyć następną stronę. gratulacje! Skonfigurowałeś swój pierwszy serwer WWW Nginx.

Konfigurowanie stron błędów:

Możesz skonfigurować strony błędów w Nginx. Na przykład, jeśli katalog strony/pliku/. Możesz ustawić niestandardową stronę błędu HTML dla kodu stanu HTTP 404, który zostanie zwrócony do przeglądarki.

Aby to zrobić, dodaj następujący wiersz w serwer Sekcja nginx.conf plik.

serwer

ERROR_PAGE 404 /404.html;

Teraz utwórz plik 404.html w korzeniu internetowym Nginx /usr/share/nginx/html/ następująco:

$ sudo nano/usr/share/nginx/html/404.html

Teraz wpisz następujące wiersze w 404.html i zapisz plik.

błąd 404


Strona nie znaleziona


© 2020 Linuxhint.com

Teraz uruchom ponownie nginx usługa w następujący sposób:

$ sudo systemctl restart nginx

Teraz spróbuj uzyskać dostęp do nieistniejącej ścieżki (http: // 192.168.20.175/nopage.html) i należy zobaczyć następującą stronę błędu.

Jeśli 404.html Plik znajduje się na innej ścieżce systemu plików (powiedzmy /usr/share/nginx/html/errors/ katalog), możesz zmapować adres URL /404.html do tego następująco:

serwer

ERROR_PAGE 404 /404.html;
Lokalizacja /404.html
root/usr/share/nginx/html/errors;


Teraz zrób nowy katalog /usr/share/nginx/html/errors/ następująco:

$ sudo mkdir/usr/share/nginx/html/błędy

Teraz utwórz nowy plik 404.html W katalogu /usr/share/nginx/html/errors/ następująco:

$ sudo nano/usr/share/nginx/html/errors/404.html

Teraz wpisz następujące wiersze w 404.html Plik i zapisz plik.

STRONA NIE ZNALEZIONA


WRÓĆ DO DOMU

Teraz uruchom ponownie nginx usługa w następujący sposób:

$ sudo systemctl restart nginx

Teraz spróbuj uzyskać dostęp do nieistniejącej ścieżki (http: // 192.168.20.175/nopage.html) i powinieneś zobaczyć zaktualizowaną stronę błędu.

W ten sam sposób możesz ustawić stronę błędu dla innych kodów stanu HTTP.

Możesz także ustawić tę samą stronę błędu dla wielu kodów stanu HTTP. Na przykład, aby ustawić tę samą stronę błędu /404.html Dla kodów stanu HTTP 403 I 404, Napisz error_page Opcja w następujący sposób:

ERROR_PAGE 403 404 /404.html;

Konfigurowanie dzienników:

W nginx, error_log I access_log Opcje są używane do rejestrowania komunikatów o błędach i informacji o dostępie.

Format error_log I access_log Opcje to:

error_log/ścieżka/do/błąd/log/file [opcjonalnie: niestandardowe-log-nazwa];
access_log/ścieżka/do/dostęp/log/file [opcjonalnie: custom-log-name];

Możesz zdefiniować własny dziennik błędów i formaty dziennika dostępu, jeśli chcesz.

Aby to zrobić, użyj log_format opcja w http sekcja, aby zdefiniować niestandardowy format dziennika w następujący sposób.

http

log_format prosty '[$ time_iso8601] $ request_method $ request_uri'
'[$ status] ($ request_time) -> $ bajtes_sent bajtes';

serwer

access_log/var/log/nginx/access.Log prosto;


Tutaj nazwa formatu dziennika to prosty. Niektóre zmienne nginx są używane do definiowania niestandardowego formatu dziennika. Odwiedź instrukcję dotyczącą zmiennych wbudowanych nginx, aby dowiedzieć się o wszystkich zmiennych nginx.

Format dziennika niestandardowego powinien być zamknięty w pojedynczych cytatach. Format dziennika można zdefiniować w jednym wierszu lub w wielu liniach. Pokazałem, jak zdefiniować format dziennika w wielu wierszach w tym artykule. Nie będziesz mieć żadnych problemów z formatem dziennika pojedynczego linii, zaufaj mi!

Kiedyś format dziennika prosty definiuje, access_log Opcja służy do informowania Nginx, aby użył go jako dziennika dostępu.

W ten sam sposób możesz ustawić niestandardowy format dziennika błędów za pomocą error_log opcja.

W tym artykule skonfigurowałem tylko niestandardowy format dziennika dla dziennika dostępu.

Teraz uruchom ponownie nginx usługa w następujący sposób:

$ sudo systemctl restart nginx

Teraz możesz monitorować plik dziennika dostępu w następujący sposób:

$ sudo ogon -f/var/log/nginx/access.dziennik

Możesz także monitorować plik dziennika błędów w następujący sposób:

$ sudo ogon -f/var/log/nginx/błąd.dziennik

Jeśli chcesz, możesz monitorować pliki dziennika dostępu i dziennika błędów w tym samym czasie, co następuje:

$ sudo ogon -f/var/log/nginx/błąd, dostęp.dziennik

Jak widać, używany jest nowy format dziennika dostępu.

Odmawianie dostępu do niektórych ścieżek:

Możesz użyć wyrażeń regularnych, aby dopasować niektóre ścieżki URI i odmówić dostępu do niego w Nginx.

Powiedzmy, że Twoja witryna jest zarządzana przez Git i chcesz odmówić dostępu do .git/ katalog w twoim korzeni internetowym.

Aby to zrobić, wpisz w następujących wierszach w serwer Sekcja /etc/nging/nginx.conf plik:

serwer

Lokalizacja ~ \.git
zaprzeczać wszystkiemu;


Jak widać, dostęp do każdej zawieranej ścieżki .git odmawia się.

Konfigurowanie kompresji:

Możesz kompresować zawartość sieci przed wysłaniem ich do przeglądarki za pomocą gzip Aby zaoszczędzić użycie przepustowości serwera WWW Nginx.

Mam kilka obrazów JPEG w /usr/share/nginx/html/images/ informator.

Mogę uzyskać dostęp do tych obrazów za pomocą ścieżki URI /obrazy.

Aby włączyć kompresję GZIP tylko dla obrazów JPEG na ścieżce URI /obrazy, Wpisz w następujących wierszach w serwer Sekcja /etc/nginx/nginx.conf plik.

serwer

lokalizacja /obrazy
gzip on;
gzip_comp_level 9;
gzip_min_length 100000;
gzip_types image/jpeg;


Tutaj, GZIP_Comp_LEVEL służy do ustawienia poziomu kompresji. Może to być dowolna liczba od 1 do 9. Im wyższy poziom, tym mniejszy będzie skompresowany plik.

Plik zostanie skompresowany tylko wtedy, gdy rozmiar pliku jest powyżej gzip_min_length. W tym przykładzie ustawiłem to na około 100 kb. Tak więc pliki JPEG mniejsze niż 100 kb nie będą kompresowane GZIP.

GZIP_TYPES służy do ustawienia typu MIME plików, które zostaną skompresowane.

Typ MIME można znaleźć z rozszerzeń plików w następujący sposób:

$ grep jpg/etc/nginx/mime.typy

Jak widać, dla .jpg Lub .JPEG rozszerzenie pliku, typ MIME to Obraz/JPEG.

Możesz ustawić jeden lub więcej typów MIME za pomocą GZIP_TYPES opcja.

Jeśli chcesz ustawić wiele typów MIME, upewnij się, że oddzień je przestrzeniami w następujący sposób:

"
gzip_types image/JPEG Image/PNG Image/gif;

Teraz uruchom ponownie nginx usługa w następujący sposób:

$ sudo systemctl restart nginx

Jak widać, Nginx wysyła pliki obrazów skompresowanych GZIP do przeglądarki na żądanie.

Jak widać na zrzucie ekranu poniżej, plik skompresowany GZIP jest mniejszy niż oryginalny plik.

$ sudo ogon -f/var/log/nginx/access.dziennik

Włączanie HTTPS:

Możesz bardzo łatwo włączyć SSL w Nginx. W tej sekcji pokażę ci, jak ustawić samowystarczalny certyfikat SSL w Nginx.

Najpierw przejdź do /etc/ssl/ katalog w następujący sposób:

$ cd /etc /ssl

Teraz wygeneruj klucz SSL serwer.klucz i certyfikat serwer.crt Z następującym poleceniem:

$ sudo openssl req -x509 -nodes -Days 365 -Newkey RSA: 2048 -Keyout
serwer.klucz -ut serwer.crt

NOTATKA: Ty musisz mieć Openssl zainstalowane, aby to działało. Jeśli polecenie OpenSSL jest niedostępne, zainstaluj Openssl Z następującym poleceniem:

$ sudo dnf install openSsl -y

Teraz wpisz swój 2-literowy kod kraju (i.mi. USA dla USA, Wielka Brytania dla Wielkiej Brytanii, Ru dla Rosji, CN dla Chin) i prasa .

Teraz wpisz nazwę stanu/prowincji i naciśnij .

Teraz wpisz nazwę miasta i naciśnij .

Teraz wpisz nazwę swojej firmy i naciśnij .

Teraz wpisz nazwę jednostki organizacyjnej Twojej firmy, która użyje tego certyfikatu i naciśnij .

Teraz wpisz w pełni kwalifikowaną nazwę domeny (FQDN) swojego serwera WWW Nginx i naciśnij . Certyfikat SSL będzie ważny tylko wtedy, gdy dostęp do serwera WWW Nginx jest dostępny za pomocą tej nazwy domeny.

Teraz wpisz swój adres e -mail i naciśnij .

Twój certyfikat SSL powinien być gotowy.

Certyfikat SSL i klucz powinny być wygenerowane w /etc/ssl/ informator.

$ ls -lh

Teraz otwórz plik konfiguracyjny Nginx /etc/nginx/nginx.conf i zmień Słuchać port do 443 i wpisz w następujących wierszach w serwer Sekcja.

serwer

SSL on;
SSL_Certificate/Etc/SSL/Server.crt;
SSL_Certificate_Key/Etc/SSL/Server.klucz;

Teraz uruchom ponownie nginx usługa w następujący sposób:

$ sudo systemctl restart nginx

W prawdziwym życiu będziesz mieć prawidłową konfigurację DNS. Ale w celu testowania skonfigurowałem lokalną nazwę domeny opartej na plikach na komputerze, z którego używałem do uzyskiwania dostępu do serwera WWW Nginx.

Jeśli chcesz śledzić, otwórz /etc/hosts Plik w następujący sposób:

$ sudo nano /itp

Następnie dodaj następujący wiersz do /etc/hosts plik.

192.168.20.175 www.przykład.com

Teraz spróbuj odwiedzić https: // www.przykład.com i powinieneś zobaczyć następną stronę. Zobaczysz Twój połączenie nie jest bezpieczne Wiadomość, ponieważ jest to samowystarczalny certyfikat. To jest dobre tylko do testowania celu.

W prawdziwym życiu będziesz kupować certyfikaty SSL od organów certyfikatów (CAS) i korzystać z nich. Więc nie zobaczysz tego typu wiadomości.

Jak widać, Nginx służył strony internetowej przez HTTPS. Więc SSL działa.

Informacje o SSL www.przykład.com.

Przekierowanie żądań HTTP do HTTPS:

Jeśli ktoś odwiedzi twoją stronę internetową przez protokół HTTP (http: // www.przykład.com lub http: // 192.168.20.175) zamiast https (https: // www.przykład.com), nie chcesz odrzucić żądania HTTP. Jeśli to zrobisz, stracisz gościa. To, co naprawdę powinieneś zrobić, to przekierować użytkownika do witryny włączonej SSL. Jest to naprawdę proste.

Najpierw otwórz plik konfiguracyjny Nginx /etc/nginx/nginx.conf i stwórz nowe serwer sekcja wewnątrz http sekcja w następujący sposób:

http

serwer
Posłuchaj 80;
Server_name www.przykład.com;
zwróć 301 https: // www.przykład.com $ request_uri;


To jest finał /etc/nginx/nginx.conf plik:

użytkownik Nginx nginx;
robotnik_processes auto;
error_log/var/log/nginx/błąd.dziennik;
PID /run /nginx.pid;
wydarzenia
robotnik_connections 1024;

http
obejmują/etc/nginx/mim.typy;
default_type Application/Octet-Stream;
log_format prosty '[$ time_iso8601] $ request_method $ request_uri'
'[$ status] ($ request_time) -> $ bajtes_sent bajtes';
serwer
Posłuchaj 80;
Server_name www.przykład.com;
zwróć 301 https: // www.przykład.com $ request_uri;

serwer
Posłuchaj 443;
Server_name www.przykład.com;
SSL on;
SSL_Certificate/Etc/SSL/Server.crt;
SSL_Certificate_Key/Etc/SSL/Server.klucz;
access_log/var/log/nginx/access.Log prosto;
Lokalizacja /
root/usr/share/nginx/html;
indeks indeksu.html;

lokalizacja /obrazy
gzip on;
gzip_comp_level 9;
gzip_min_length 100000;
gzip_types image/jpeg;

ERROR_PAGE 404 /404.html;
Lokalizacja /404.html
root/usr/share/nginx/html/errors;

Lokalizacja ~ \.git
zaprzeczać wszystkiemu;


Teraz uruchom ponownie nginx usługa w następujący sposób:

$ sudo systemctl restart nginx

Teraz, jeśli spróbujesz uzyskać dostęp do http: // 192.168.20.175 lub http: // www.przykład.com, zostaniesz przekierowany na https: // www.przykład.com.

Tak więc instalujesz i konfigurujesz serwer WWW Nginx na Centos 8. Dziękujemy za przeczytanie tego artykułu.