Nginx

Sådan installeres Nginx og konfigureres på CentOS 8

Sådan installeres Nginx og konfigureres på CentOS 8
Nginx er en hurtig og let webserver. Konfigurationsfilerne til Nginx er virkelig enkle og lette at arbejde med. Det er et godt alternativ til Apache-webserveren.  I denne artikel vil jeg vise dig, hvordan du installerer og konfigurerer Nginx-webserver på CentOS 8. Så lad os komme i gang.

Installation af Nginx:

Nginx er tilgængelig i det officielle pakkeopbevaringssted for CentOS 8. Så det er meget let at installere.

Opdater først DNF-pakkeopbevaringscachen som følger:

$ sudo dnf makecache

Installer nu Nginx med følgende kommando:

$ sudo dnf installerer nginx

Tryk på for at bekræfte installationen Y og tryk derefter på .

Nginx skal installeres.

Administration af nginx-tjenesten:

Som standard, nginx service skal være inaktiv (kører ikke) og handicappet (starter ikke automatisk ved opstart).

$ sudo systemctl status nginx

Du kan starte nginx service som følger:

$ sudo systemctl start nginx

nginx service skal være kører.

$ sudo systemctl status nginx

Tilføj nu nginx service til systemstart som følger:

$ sudo systemctl aktiver nginx

Konfiguration af firewall:

Du skal konfigurere firewallen for at give adgang til HTTP-port 80 og HTTPS-port 443 for at få adgang til Nginx-webserveren fra andre computere på netværket.

Du kan give adgang til HTTP- og HTTPS-porten med følgende kommando:

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

For at ændringerne skal træde i kraft, skal du køre følgende kommando:

$ sudo firewall-cmd --reload

Test af webserveren:

Du skal kende Nginx-webserverens IP-adresse eller domænenavn for at få adgang til den.

Du kan finde IP-adressen på din Nginx-webserver med følgende kommando:

$ ip a

I mit tilfælde er IP-adressen 192.168.20.175. Det vil være anderledes for dig. Så sørg for at erstatte den med din fra nu af.

Besøg nu http: // 192.168.20.175 fra din webbrowser. Du skulle se den næste side. Det betyder, at Nginx-webserveren fungerer.

Konfigurationsfiler af nginx:

Nginx-webserverkonfigurationsfiler findes i / etc / nginx / vejviser.

$ træ / etc / nginx

/ etc / nginx / nginx.konf er den vigtigste Nginx-konfigurationsfil.

Standard-root-rodmappen på Nginx-webserveren er / usr / del / nginx / html /. Så det er her, du skal gemme dine webstedsfiler.

Opsætning af en grundlæggende webserver:

I dette afsnit vil jeg vise dig, hvordan du opretter en grundlæggende Nginx-webserver.

Tag først en sikkerhedskopi af den originale Nginx-konfigurationsfil med følgende kommando:

$ sudo mv -v / etc / nginx / nginx.conf / etc / nginx / nginx.konf.original

Opret nu en ny Nginx-konfigurationsfil som følger:

$ sudo nano / etc / nginx / nginx.konf

Skriv nu de følgende linjer i / etc / nginx / nginx.konf fil, og gem filen.

bruger nginx nginx;
arbejder_processer auto;
error_log / var / log / nginx / error.log;
pid / run / nginx.pid;
 
begivenheder
arbejdstagerforbindelser 1024;

 
http
inkluderer / etc / nginx / mime.typer;
default_type-applikation / octet-stream;
 
server
lyt 80;
eksempel på servernavn.com www.eksempel.com;
root / usr / share / nginx / html;
indeksindeks.html;
adgang_log / var / log / nginx / adgang.log;

Her, bruger indstilling bruges til at indstille Nginx-kørende bruger og gruppe til nginx henholdsvis.

Det error_log indstilling bruges til at indstille stien til fejllogfil / var / log / nginx / fejl.log. Det er her, der gemmes fejl relateret til Nginx-serveren.

Den primære Nginx-serverkonfiguration er defineret i server sektion inde i http afsnit. Du kan definere mere end en server sektion inde i http sektion, hvis det er nødvendigt.

I server afsnit,

Lyt mulighed bruges til at konfigurere Nginx til at lytte til port 80 (HTTP-port) til webanmodninger.

server navn indstilling bruges til at indstille et eller flere domænenavne til Nginx-webserveren. Hvis dine DNS-indstillinger er korrekte, kan du få adgang til Nginx-webserver ved hjælp af disse domænenavne.

adgang_log bruges til at indstille adgangslogfilens sti til / var / log / nginx / adgang.log. Når nogen forsøger at få adgang til Nginx-webserveren, får adgangsoplysningerne (i.e. IP-adresse, URL, HTTP-statuskode) logges til denne fil.

Det Beliggenhed indstilling bruges til at indstille rodmappen på Nginx-webserveren.

Her, den rod mappe er / usr / del / nginx / html /.

Det er her, alle webstedsfiler skal opbevares. Det indeks indstillingssæt indeks.html som standardfil, der skal bruges, hvis der ikke anmodes om nogen specifik fil. For eksempel, hvis du besøger http: // 192.168.20.175 / myfile.html, så vender du Nginx tilbage myfile.html fil. Men hvis du besøger http: // 192.168.20.175 /, så sender Nginx dig indeks.html-fil, da der ikke blev anmodet om nogen specifik fil.

Fjern nu alle filerne fra / usr / del / nginx / html / katalog (webrod) som følger:

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

Opret nu et nyt indeks.html fil i / usr / del / nginx / html / katalog som følger:

Skriv nu de følgende linjer i indeks.html fil, og gem filen.

Hej Verden


© 2020 LinuxHint.com

Genstart nu nginx service som følger:

$ sudo systemctl genstart nginx

Besøg nu http: // 192.168.20.175 fra din webbrowser, og du skal se den følgende side. tillykke! Du har oprettet din første Nginx-webserver.

Konfiguration af fejlsider:

Du kan konfigurere fejlsider i Nginx. For eksempel, hvis en side / fil / mappe ikke er tilgængelig, returneres HTTP-statuskode 404 til browseren. Du kan indstille en brugerdefineret HTML-fejlside til HTTP-statuskoden 404, som returneres til browseren.

For at gøre det skal du tilføje følgende linje i server sektion af nginx.konf fil.

server
..
error_page 404/404.html;
..

Opret nu en fil 404.html i Nginx-webroden / usr / del / nginx / html / som følger:

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

Skriv nu de følgende linjer i 404.html og gem filen.

Fejl 404


Siden blev ikke fundet


© 2020 LinuxHint.com

Genstart nu nginx service som følger:

$ sudo systemctl genstart nginx

Prøv nu at få adgang til en ikke-eksisterende sti (http: // 192.168.20.175 / nopage.html), og du skulle se følgende fejlside.

Hvis den 404.html filen er i en anden filsystemsti (lad os sige / usr / del / nginx / html / fejl / bibliotek), kan du kortlægge URL'en / 404.html til det som følger:

server
..
error_page 404/404.html;
placering / 404.html
root / usr / share / nginx / html / fejl;

..

Opret nu en ny mappe  / usr / del / nginx / html / fejl / som følger:

$ sudo mkdir / usr / share / nginx / html / fejl

Opret nu en ny fil 404.html i telefonbogen / usr / del / nginx / html / fejl / som følger:

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

Skriv nu de følgende linjer i 404.html fil, og gem filen.

SIDEN BLEV IKKE FUNDET


TAG HJEM IGEN

Genstart nu nginx service som følger:

$ sudo systemctl genstart nginx

Prøv nu at få adgang til en ikke-eksisterende sti (http: // 192.168.20.175 / nopage.html), og du skal se den opdaterede fejlside.

På samme måde kan du indstille fejlside for andre HTTP-statuskoder.

Du kan også indstille den samme fejlside for flere HTTP-statuskoder. For eksempel at indstille den samme fejlside / 404.html for HTTP-statuskoder 403 og 404, Skriv error_page mulighed som følger:

error_page 403404/404.html;

Konfiguration af logfiler:

I Nginx er error_log og adgang_log indstillinger bruges til at logge fejlmeddelelser og få adgang til oplysninger.

Formatet for error_log og adgang_log mulighederne er:

error_log / sti / til / error / log / fil [valgfrit: brugerdefineret-log-navn];
adgang_log / sti / til / adgang / log / fil [valgfrit: brugerdefineret log-navn];

Du kan definere din egen fejllog og få adgang til logformater, hvis du vil.

For at gøre det skal du bruge log_format indstilling i http sektion for at definere dit brugerdefinerede logformat som følger.

http
..
log_format simpelt '[$ time_iso8601] $ request_method $ request_uri'
'[$ status] ($ request_time) -> $ bytes_sent bytes';
..
server
..
adgang_log / var / log / nginx / adgang.log enkel;
..

Her er logformatnavnet enkel. Nogle nginx-variabler bruges til at definere det brugerdefinerede logformat. Besøg Nginx Integrated Variables Manual for at lære om alle Nginx-variabler.

Det brugerdefinerede logformat skal være lukket i enkelte tilbud. Logformatet kan defineres i en enkelt linje eller i flere linjer. Jeg har vist, hvordan man definerer logformatet i flere linjer i denne artikel. Du har ikke problemer med loginformatet for en enkelt linje, tro mig!

Når logformatet enkel er defineret, adgang_log mulighed bruges til at fortælle Nginx at bruge den som adgangslog.

På samme måde kan du indstille et brugerdefineret fejllogformat ved hjælp af error_log mulighed.

Jeg har kun konfigureret brugerdefineret logformat til adgangsloggen i denne artikel.

Genstart nu nginx service som følger:

$ sudo systemctl genstart nginx

Nu kan du overvåge adgangslogfilen som følger:

$ sudo tail -f / var / log / nginx / access.log

Du kan også overvåge fejllogfilen som følger:

$ sudo tail -f / var / log / nginx / error.log

Hvis du vil, kan du overvåge adgangsloggen og fejllogfilerne på samme tid som følger:

$ sudo tail -f / var / log / nginx / fejl, adgang.log

Som du kan se, bruges det nye adgangslogformat.

Nægtelse af adgang til visse stier:

Du kan bruge regulære udtryk til at matche bestemte URI-stier og nægte adgang til det i Nginx.

Lad os sige, dit websted administreres af Git, og du vil nægte adgang til .git / bibliotek på din webrod.

For at gøre det skal du skrive følgende linjer i server sektion af / etc / nging / nginx.konf fil:

server
..
placering ~ \.git
benægte alt;

..

Som du kan se, adgang til enhver sti, der indeholder .git nægtes.

Konfiguration af kompression:

Du kan komprimere webindhold, før du sender det til browseren ved hjælp af gzip for at gemme båndbreddebrug af Nginx-webserveren.

Jeg har nogle JPEG-billeder i / usr / del / nginx / html / billeder / vejviser.

Jeg kan få adgang til disse billeder ved hjælp af URI-stien / billeder.

For at aktivere gzip-komprimering for kun JPEG-billeder i URI-stien / billeder, skriv følgende linjer i server sektion af / etc / nginx / nginx.konf fil.

server
..
placering / billeder
gzip på;
gzip_comp_level 9;
gzip_min_længde 100000;
gzip_types image / jpeg;

..

Her, gzip_comp_level bruges til at indstille kompressionsniveauet. Det kan være et hvilket som helst tal fra 1 til 9. Jo højere niveau, jo mindre bliver den komprimerede fil.

Filen komprimeres kun, hvis filens størrelse er over gzip_min_length. Jeg har indstillet det til ca. 100 KB i dette eksempel. Så JPEG-filer, der er mindre end 100 KB, komprimeres ikke gzip.

Det  gzip_types bruges til at indstille mime-typen af ​​de filer, der skal komprimeres.

Du kan finde mime-type fra filtypenavn som følger:

$ grep jpg / etc / nginx / mime.typer

Som du kan se, for .jpg eller .jpeg filtypenavnet, mime-typen er billede / jpeg.

Du kan indstille en eller flere mime-typer ved hjælp af gzip_types mulighed.

Hvis du vil indstille flere mime-typer, skal du sørge for at adskille dem med mellemrum som følger:

"
gzip_types image / jpeg image / png image / gif;

Genstart nu nginx service som følger:

$ sudo systemctl genstart nginx

Som du kan se, sender Nginx gzip komprimerede billedfiler til browseren, når du bliver bedt om det.

Som du kan se på skærmbilledet nedenfor, er den komprimerede gzip-fil mindre end den originale fil.

$ sudo tail -f / var / log / nginx / access.log

Aktivering af HTTPS:

Du kan aktivere SSL i Nginx meget let. I dette afsnit vil jeg vise dig, hvordan du indstiller selvsigneret SSL-certifikat i Nginx.

Naviger først til / etc / ssl / katalog som følger:

$ cd / etc / ssl

Generer nu en SSL-nøgle server.nøgle og certifikat server.crt med følgende kommando:

$ sudo openssl-anmodning -x509 -noder -dage 365 -nyt nøgle rsa: 2048 -keyout
server.nøgle-out server.crt

BEMÆRK: Du må have openssl installeret for at dette skal fungere. Hvis openssl-kommandoen ikke er tilgængelig, skal du installere openssl med følgende kommando:

$ sudo dnf installerer openssl -y

Indtast nu din landekode på to bogstaver (i.e. USA for USA, UK for Storbritannien, RU for Rusland, CN for Kina) og presse .

Indtast nu dit stat / provinsnavn, og tryk på .

Indtast nu dit bynavn og tryk på .

Skriv nu dit firmanavn og tryk på .

Indtast nu organisationsenhedsnavnet på din virksomhed, som bruger dette certifikat, og tryk på .

Skriv nu det fuldt kvalificerede domænenavn (FQDN) på din Nginx-webserver og tryk på . SSL-certifikatet er kun gyldigt, hvis der er adgang til Nginx-webserveren ved hjælp af dette domænenavn.

Indtast nu din e-mail-adresse, og tryk på .

Dit SSL-certifikat skal være klar.

SSL-certifikatet og nøglen skal genereres i / etc / ssl / vejviser.

$ ls -lh

Åbn nu Nginx-konfigurationsfilen / etc / nginx / nginx.konf og ændre Lyt port til 443 og skriv følgende linjer i server afsnit.

server
..
ssl på;
ssl_certificate / etc / ssl / server.crt;
ssl_certificate_key / etc / ssl / server.nøgle;
..

Genstart nu nginx service som følger:

$ sudo systemctl genstart nginx

I det virkelige liv har du den korrekte DNS-opsætning. Men til testformål har jeg konfigureret lokalt filbaseret domænenavn på den computer, jeg har brugt til at få adgang til Nginx-webserveren fra.

Hvis du vil følge med, skal du åbne / etc / hosts fil som følger:

$ sudo nano / etc / hosts

Føj derefter følgende linje til / etc / hosts fil.

192.168.20.175 www.eksempel.com

Prøv nu at besøge https: // www.eksempel.com og du skal se den næste side. Du vil se Din forbindelse er ikke sikker besked, fordi det er et selvsigneret certifikat. Dette er kun godt til testformål.

I det virkelige liv vil du købe SSL-certifikater fra certifikatmyndigheder (CA'er) og bruge dem. Så du kan ikke se denne type besked.

Som du kan se, serverede Nginx websiden via HTTPS. Så SSL fungerer.

SSL-oplysningerne fra www.eksempel.com.

Omdirigering af HTTP-anmodninger til HTTPS:

Hvis nogen besøger dit websted via HTTP-protokol (http: // www.eksempel.com eller http: // 192.168.20.175) i stedet for HTTPS (https: // www.eksempel.com), vil du ikke afvise HTTP-anmodningen. Hvis du gør det, mister du en besøgende. Hvad du virkelig skal gøre er at omdirigere brugeren til det SSL-aktiverede websted. Det er virkelig nemt at gøre.

Åbn først Nginx-konfigurationsfilen / etc / nginx / nginx.konf og opret et nyt server sektion inde i http afsnit som følger:

http
..
server
lyt 80;
servernavn www.eksempel.com;
returner 301 https: // www.eksempel.com $ request_uri;

..

Dette er finalen / etc / nginx / nginx.konf fil:

bruger nginx nginx;
arbejder_processer auto;
error_log / var / log / nginx / error.log;
pid / run / nginx.pid;
begivenheder
arbejdstagerforbindelser 1024;

http
inkluderer / etc / nginx / mime.typer;
default_type-applikation / octet-stream;
log_format simpelt '[$ time_iso8601] $ request_method $ request_uri'
'[$ status] ($ request_time) -> $ bytes_sent bytes';
 
server
lyt 80;
servernavn www.eksempel.com;
returner 301 https: // www.eksempel.com $ request_uri;

server
lyt 443;
servernavn www.eksempel.com;
ssl på;
ssl_certificate / etc / ssl / server.crt;
ssl_certificate_key / etc / ssl / server.nøgle;
adgang_log / var / log / nginx / adgang.log enkel;
Beliggenhed /
root / usr / share / nginx / html;
indeksindeks.html;

placering / billeder
gzip på;
gzip_comp_level 9;
gzip_min_længde 100000;
gzip_types image / jpeg;

error_page 404/404.html;
placering / 404.html
root / usr / share / nginx / html / fejl;

placering ~ \.git
benægte alt;


Genstart nu nginx service som følger:

$ sudo systemctl genstart nginx

Nu, hvis du prøver at få adgang til http: // 192.168.20.175 eller http: // www.eksempel.com, vil du blive omdirigeret til https: // www.eksempel.com.

Så det er sådan, du installerer og konfigurerer Nginx-webserver på CentOS 8. Tak, fordi du læste denne artikel.

Sådan bruges GameConqueror Cheat Engine i Linux
Artiklen dækker en vejledning om brug af GameConqueror-snydemotoren i Linux. Mange brugere, der spiller spil på Windows, bruger ofte "Cheat Engine" -a...
Bedste spilkonsolemulatorer til Linux
Denne artikel viser en liste over populære spilkonsolemuleringssoftware, der er tilgængelig til Linux. Emulation er et softwarekompatibilitetslag, der...
Bedste Linux Distros til spil i 2021
Linux-operativsystemet er kommet langt fra dets originale, enkle, serverbaserede udseende. Dette operativsystem er forbedret enormt i de senere år og ...