Nginx

Slik installerer du Nginx og konfigurerer på CentOS 8

Slik installerer du Nginx og konfigurerer på CentOS 8
Nginx er en rask og lett webserver. Konfigurasjonsfilene til Nginx er veldig enkle og enkle å jobbe med. Det er et flott alternativ til Apache-webserveren.  I denne artikkelen skal jeg vise deg hvordan du installerer og konfigurerer Nginx webserver på CentOS 8. Så la oss komme i gang.

Installere Nginx:

Nginx er tilgjengelig i det offisielle pakkelageret til CentOS 8. Så det er veldig enkelt å installere.

Oppdater først DNF-pakkeoppbevaringsbufferen som følger:

$ sudo dnf makecache

Installer nå Nginx med følgende kommando:

$ sudo dnf installere nginx

Trykk på for å bekrefte installasjonen Y og trykk deretter på .

Nginx skal installeres.

Administrere nginx-tjenesten:

Som standard, nginx tjenesten skal være inaktiv (kjører ikke) og funksjonshemmet (starter ikke automatisk ved oppstart).

$ sudo systemctl status nginx

Du kan starte nginx tjenesten som følger:

$ sudo systemctl start nginx

nginx tjenesten skal være løping.

$ sudo systemctl status nginx

Nå, legg til nginx tjenesten til systemoppstart som følger:

$ sudo systemctl aktiver nginx

Konfigurere brannmuren:

Du må konfigurere brannmuren slik at den gir tilgang til HTTP-port 80 og HTTPS-port 443 for å få tilgang til Nginx-webserveren fra andre datamaskiner i nettverket.

Du kan gi tilgang til HTTP- og HTTPS-porten med følgende kommando:

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

Kjør følgende kommando for at endringene skal tre i kraft:

$ sudo firewall-cmd --reload

Testing av webserveren:

Du må kjenne IP-adressen eller domenenavnet til Nginx-webserveren for å få tilgang til den.

Du finner IP-adressen til Nginx-webserveren din med følgende kommando:

$ ip a

I mitt tilfelle er IP-adressen 192.168.20.175. Det vil være annerledes for deg. Så sørg for å erstatte den med din fra nå av.

Nå, besøk http: // 192.168.20.175 fra nettleseren din. Du bør se neste side. Det betyr at Nginx webserver fungerer.

Konfigurasjonsfiler av nginx:

Nginx webserverkonfigurasjonsfiler er i / etc / nginx / katalog.

$ tree / etc / nginx

/ etc / nginx / nginx.konf er den viktigste Nginx-konfigurasjonsfilen.

Standard webrotkatalog for Nginx webserver er / usr / del / nginx / html /. Så dette er hvor du bør beholde nettstedsfilene dine.

Sette opp en grunnleggende webserver:

I denne delen skal jeg vise deg hvordan du setter opp en grunnleggende Nginx-webserver.

Ta først en sikkerhetskopi av den opprinnelige Nginx-konfigurasjonsfilen med følgende kommando:

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

Opprett nå en ny Nginx-konfigurasjonsfil som følger:

$ sudo nano / etc / nginx / nginx.konf

Skriv inn følgende linjer i / etc / nginx / nginx.konf filen og lagre filen.

bruker nginx nginx;
arbeider_prosesser automatisk;
error_log / var / log / nginx / error.Logg;
pid / run / nginx.pid;
 
arrangementer
arbeidstakerforbindelser 1024;

 
http
inkluderer / etc / nginx / mime.typer;
default_type applikasjon / oktett-stream;
 
server
hør 80;
server_name eksempel.com www.eksempel.com;
root / usr / share / nginx / html;
indeksindeks.html;
access_log / var / log / nginx / access.Logg;

Her, bruker alternativet brukes til å sette Nginx-kjører bruker og gruppe til nginx henholdsvis.

De feil logg alternativet brukes til å angi feilloggfilbanen til / var / log / nginx / feil.Logg. Dette er hvor feil relatert til Nginx-serveren blir lagret.

Den viktigste Nginx-serverkonfigurasjonen er definert i server seksjon inne i http seksjon. Du kan definere mer enn en server seksjon inne i http delen om nødvendig.

I server seksjon,

lytte alternativet brukes til å konfigurere Nginx til å lytte til port 80 (HTTP-port) for nettforespørsler.

Server navn alternativet brukes til å angi ett eller flere domenenavn for Nginx-webserveren. Hvis DNS-innstillingene dine er riktige, kan du få tilgang til Nginx-webserveren ved hjelp av disse domenenavnene.

tilgang_logg brukes til å angi tilgangsloggfilbanen til / var / log / nginx / tilgang.Logg. Når noen prøver å få tilgang til Nginx-webserveren, får tilgangsinformasjonen (i.e. IP-adresse, URL, HTTP-statuskode) logges til denne filen.

De plassering alternativet brukes til å angi rotkatalogen til Nginx-webserveren.

Her, den rot katalog er / usr / del / nginx / html /.

Det er her alle nettstedsfilene skal oppbevares. De indeks opsjonssett indeks.html som standardfil som skal vises hvis ingen spesifikke filer er forespurt. For eksempel hvis du besøker http: // 192.168.20.175 / myfile.html, så kommer Nginx tilbake myfile.html fil. Men hvis du besøker http: // 192.168.20.175 /, så vil Nginx sende deg indeks.html-fil da det ikke ble bedt om noen spesifikk fil.

Fjern nå alle filene fra / usr / del / nginx / html / katalog (webrot) som følger:

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

Lag nå et nytt indeks.html filen i / usr / del / nginx / html / katalog som følger:

Skriv inn følgende linjer i indeks.html filen og lagre filen.

Hei Verden


© 2020 LinuxHint.com

Start på nytt nginx tjenesten som følger:

$ sudo systemctl start nginx på nytt

Nå, besøk http: // 192.168.20.175 fra nettleseren din, og du bør se neste side. Gratulerer! Du har satt opp din første Nginx-webserver.

Konfigurere feilsider:

Du kan konfigurere feilsider i Nginx. For eksempel, hvis en side / fil / katalog ikke er tilgjengelig, vil HTTP-statuskode 404 returneres til nettleseren. Du kan angi en egendefinert HTML-feilside for HTTP-statuskoden 404 som returneres til nettleseren.

For å gjøre det, legg til følgende linje i server seksjon av nginx.konf fil.

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

Lag nå en fil 404.html i Nginx-nettroten / usr / del / nginx / html / som følger:

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

Skriv inn følgende linjer i 404.html og lagre filen.

Feil 404


Side ikke funnet


© 2020 LinuxHint.com

Start på nytt nginx tjenesten som følger:

$ sudo systemctl start nginx på nytt

Prøv nå å få tilgang til en ikke-eksisterende bane (http: // 192.168.20.175 / nopage.html), og du bør se følgende feilside.

Hvis den 404.html filen er i en annen filsystembane (la oss si / usr / del / nginx / html / feil / katalog), kan du tilordne URL-en / 404.html til det som følger:

server
..
error_page 404/404.html;
beliggenhet / 404.html
root / usr / share / nginx / html / feil;

..

Lag nå en ny katalog  / usr / del / nginx / html / feil / som følger:

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

Lag nå en ny fil 404.html i katalogen / usr / del / nginx / html / feil / som følger:

$ sudo nano / usr / del / nginx / html / feil / 404.html

Skriv inn følgende linjer i 404.html filen og lagre filen.

SIDE IKKE FUNNET


GÅ HJEM IGJEN

Start på nytt nginx tjenesten som følger:

$ sudo systemctl start nginx på nytt

Prøv nå å få tilgang til en ikke-eksisterende bane (http: // 192.168.20.175 / nopage.html) og du bør se den oppdaterte feilsiden.

På samme måte kan du angi feilside for andre HTTP-statuskoder.

Du kan også angi den samme feilsiden for flere HTTP-statuskoder. For eksempel for å angi den samme feilsiden / 404.html for HTTP-statuskoder 403 og 404, skrive den error_page alternativ som følger:

error_page 403404/404.html;

Konfigurere logger:

I Nginx, feil logg og tilgang_logg alternativene brukes til å logge feilmeldinger og få tilgang til informasjon.

Formatet til feil logg og tilgang_logg alternativene er:

error_log / path / to / error / log / file [valgfritt: custom-log-name];
access_log / path / to / access / log / file [valgfritt: custom-log-name];

Du kan definere din egen feillogg og få tilgang til loggformater hvis du vil.

For å gjøre det, bruk log_format alternativet i http delen for å definere ditt tilpassede loggformat som følger.

http
..
log_format enkel '[$ time_iso8601] $ request_method $ request_uri'
'[$ status] ($ request_time) -> $ bytes_sent bytes';
..
server
..
access_log / var / log / nginx / access.logg enkelt;
..

Her er loggformatnavnet enkel. Noen nginx-variabler brukes til å definere det tilpassede loggformatet. Besøk Nginx Embedded Variables Manual for å lære om alle Nginx-variablene.

Det egendefinerte loggformatet skal være vedlagt i enkelt anførselstegn. Loggformatet kan defineres i en enkelt linje eller i flere linjer. Jeg har vist hvordan du definerer loggformatet i flere linjer i denne artikkelen. Du vil ikke ha noen problemer med loggformatet for en linje, stol på meg!

Når loggformatet enkel er definert, tilgang_logg alternativet brukes til å fortelle Nginx å bruke det som tilgangslogg.

På samme måte kan du angi et tilpasset feilloggformat ved hjelp av feil logg alternativ.

Jeg har bare konfigurert tilpasset loggformat for tilgangsloggen i denne artikkelen.

Start på nytt nginx tjenesten som følger:

$ sudo systemctl start nginx på nytt

Nå kan du overvåke tilgangsloggfilen som følger:

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

Du kan også overvåke feilloggfilen som følger:

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

Hvis du vil, kan du overvåke tilgangsloggen og feilloggfilene samtidig som følger:

$ sudo tail -f / var / log / nginx / error, access.Logg

Som du ser, blir det nye tilgangsloggformatet brukt.

Nekter tilgang til visse baner:

Du kan bruke vanlige uttrykk for å matche bestemte URI-baner og nekte tilgang til det i Nginx.

La oss si at nettstedet ditt administreres av Git, og du vil nekte tilgang til .git / katalog på webrot.

For å gjøre det, skriv inn følgende linjer i server seksjon av / etc / nging / nginx.konf fil:

server
..
plassering ~ \.git
fornekte alt;

..

Som du kan se, tilgang til en hvilken som helst bane som inneholder .git nektes.

Konfigurere komprimering:

Du kan komprimere nettinnhold før du sender det til nettleseren ved hjelp av gzip for å spare bruk av båndbredde på Nginx-webserveren.

Jeg har noen JPEG-bilder i / usr / del / nginx / html / bilder / katalog.

Jeg får tilgang til disse bildene ved hjelp av URI-banen /Bilder.

For å aktivere gzip-komprimering for bare JPEG-bilder i URI-banen /Bilder, skriv inn følgende linjer i server seksjon av / etc / nginx / nginx.konf fil.

server
..
sted / bilder
gzip på;
gzip_comp_level 9;
gzip_min_length 100000;
gzip_types image / jpeg;

..

Her, gzip_comp_level brukes til å stille kompresjonsnivået. Det kan være et hvilket som helst tall fra 1 til 9. Jo høyere nivå, jo mindre blir den komprimerte filen.

Filen komprimeres bare hvis størrelsen på filen er over gzip_min_length. Jeg har satt den til omtrent 100 KB i dette eksemplet. Så JPEG-filer mindre enn 100 KB blir ikke gzip-komprimert.

De  gzip_types brukes til å stille inn mime-typen til filene som skal komprimeres.

Du kan finne mime-type fra filtypen som følger:

$ grep jpg / etc / nginx / mime.typer

Som du kan se, for .jpg eller .jpeg filtypen, er mime-typen bilde / jpeg.

Du kan angi en eller flere mime-typer ved hjelp av gzip_types alternativ.

Hvis du vil angi flere mime-typer, må du sørge for å skille dem med mellomrom som følger:

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

Start på nytt nginx tjenesten som følger:

$ sudo systemctl start nginx på nytt

Som du kan se, sender Nginx gzip komprimerte bildefiler til nettleseren når du blir bedt om det.

Som du kan se på skjermbildet nedenfor, er den komprimerte gzip-filen mindre enn den opprinnelige filen.

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

Aktivere HTTPS:

Du kan aktivere SSL i Nginx veldig enkelt. I denne delen skal jeg vise deg hvordan du setter selvsignert SSL-sertifikat i Nginx.

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

$ cd / etc / ssl

Nå, generer en SSL-nøkkel server.nøkkel og sertifikat server.crt med følgende kommando:

$ sudo openssl req -x509 -nodes -days 365 -newkey rsa: 2048 -keyout
server.nøkkel-ut server.crt

MERK: Du må ha openssl installert for at dette skal fungere. Hvis openssl-kommandoen ikke er tilgjengelig, installer openssl med følgende kommando:

$ sudo dnf installerer openssl -y

Skriv inn landskoden på 2 bokstaver (i.e. USA for USA, Storbritannia for Storbritannia, RU for Russland, CN for Kina) og presse .

Nå skriver du inn staten / provinsnavnet ditt og trykker på .

Skriv inn bynavnet ditt og trykk .

Skriv inn firmanavnet ditt og trykk .

Skriv nå inn organisasjonsenhetsnavnet til firmaet ditt som vil bruke dette sertifikatet, og trykk .

Skriv inn det fullstendige domenenavnet (FQDN) på Nginx-webserveren din og trykk . SSL-sertifikatet vil bare være gyldig hvis Nginx-webserveren er tilgjengelig med dette domenenavnet.

Skriv inn e-postadressen din og trykk .

SSL-sertifikatet ditt skal være klart.

SSL-sertifikatet og nøkkelen skal genereres i / etc / ssl / katalog.

$ ls -lh

Nå åpner du Nginx-konfigurasjonsfilen / etc / nginx / nginx.konf og endre lytte port til 443 og skriv inn følgende linjer i server seksjon.

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

Start på nytt nginx tjenesten som følger:

$ sudo systemctl start nginx på nytt

I virkeligheten vil du ha riktig DNS-oppsett. Men for testformål har jeg konfigurert lokalt filbasert domenenavn på datamaskinen jeg har brukt for å få tilgang til Nginx-webserveren fra.

Hvis du vil følge med, åpner du / etc / verter filen som følger:

$ sudo nano / etc / hosts

Deretter legger du til følgende linje i / etc / verter fil.

192.168.20.175 www.eksempel.com

Prøv nå å besøke https: // www.eksempel.com og du bør se neste side. Du vil se Tilkoblingen din er ikke sikker melding fordi det er et selvsignert sertifikat. Dette er bare bra for testformål.

I virkeligheten vil du kjøpe SSL-sertifikater fra sertifiseringsinstanser (CA) og bruke dem. Så du vil ikke se denne typen meldinger.

Som du ser, serverte Nginx websiden via HTTPS. Så, SSL fungerer.

SSL-informasjonen til www.eksempel.com.

Omdirigere HTTP-forespørsler til HTTPS:

Hvis noen besøker nettstedet ditt via HTTP-protokoll (http: // www.eksempel.com eller http: // 192.168.20.175) i stedet for HTTPS (https: // www.eksempel.com), vil du ikke avvise HTTP-forespørselen. Hvis du gjør det, vil du miste en besøkende. Det du egentlig burde gjøre er å omdirigere brukeren til det SSL-aktiverte nettstedet. Det er veldig enkelt å gjøre.

Først åpner du Nginx-konfigurasjonsfilen / etc / nginx / nginx.konf og skape et nytt server seksjon inne i http avsnitt som følger:

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

..

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

bruker nginx nginx;
arbeider_prosesser automatisk;
error_log / var / log / nginx / error.Logg;
pid / run / nginx.pid;
arrangementer
arbeidstakerforbindelser 1024;

http
inkluderer / etc / nginx / mime.typer;
default_type applikasjon / oktett-stream;
log_format enkel '[$ time_iso8601] $ request_method $ request_uri'
'[$ status] ($ request_time) -> $ bytes_sent bytes';
 
server
hør 80;
servernavn www.eksempel.com;
returner 301 https: // www.eksempel.com $ request_uri;

server
hør 443;
servernavn www.eksempel.com;
ssl på;
ssl_certificate / etc / ssl / server.crt;
ssl_certificate_key / etc / ssl / server.nøkkel;
access_log / var / log / nginx / access.logg enkelt;
plassering /
root / usr / share / nginx / html;
indeksindeks.html;

sted / bilder
gzip på;
gzip_comp_level 9;
gzip_min_length 100000;
gzip_types image / jpeg;

error_page 404/404.html;
beliggenhet / 404.html
root / usr / share / nginx / html / feil;

plassering ~ \.git
fornekte alt;


Start på nytt nginx tjenesten som følger:

$ sudo systemctl start nginx på nytt

Nå, hvis du prøver å få tilgang til http: // 192.168.20.175 eller http: // www.eksempel.com, vil du bli omdirigert til https: // www.eksempel.com.

Så det er slik du installerer og konfigurerer Nginx webserver på CentOS 8. Takk for at du leser denne artikkelen.

Gratis og åpen kildekode-spillmotorer for utvikling av Linux-spill
Denne artikkelen vil dekke en liste over gratis og open source-spillmotorer som kan brukes til å utvikle 2D- og 3D-spill på Linux. Det er mange slike ...
Shadow of the Tomb Raider for Linux Tutorial
Shadow of the Tomb Raider er det tolvte tilskuddet til Tomb Raider-serien - et action-eventyrspill-franchise opprettet av Eidos Montreal. Spillet ble ...
Hvordan øke FPS i Linux?
FPS står for Bilder per sekund. FPSs oppgave er å måle bildefrekvensen i videoavspilling eller spillprestasjoner. Med enkle ord betegnes antall uavbru...