Hvordan installere nginx og konfigurere på centos 8

Hvordan installere nginx og konfigurere 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 -webserveren på CentOS 8. Så la oss komme i gang.

Installere nginx:

Nginx er tilgjengelig i det offisielle pakkelagde av CentOS 8. Så det er veldig enkelt å installere.

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

$ sudo dnf makecache

Nå, installer Nginx med følgende kommando:

$ sudo dnf installer nginx

For å bekrefte installasjonen, trykk Y Og trykk deretter .

Nginx skal installeres.

Administrere Nginx -tjenesten:

Som standard, nginx tjenesten skal være inaktiv (ikke løper) og funksjonshemmet (vil ikke starte automatisk på oppstart).

$ sudo systemctl status nginx

Du kan starte nginx Tjeneste som følger:

$ sudo systemctl start nginx

nginx tjenesten skal være løping.

$ sudo systemctl status nginx

Nå, legg til nginx Service til systemoppstarten som følger:

$ sudo systemctl aktiver nginx

Konfigurere brannmuren:

Du må konfigurere brannmuren for å tillate tilgang til HTTP Port 80 og HTTPS Port 443 for å få tilgang til Nginx -webserveren fra andre datamaskiner i nettverket.

Du kan tillate tilgang til HTTP- og HTTPS -port med følgende kommando:

$ SUDO FIREWALL-CMD-ADD-SERVICE = http, https-permanent

Nå, for at endringene skal tre i kraft, kjør følgende kommando:

$ sudo Firewall-CMD-Reload

Testing av webserveren:

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

Du kan finne 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 følgende side. Det betyr at Nginx webserver fungerer.

Konfigurasjonsfiler av Nginx:

Nginx webserverkonfigurasjonsfiler er i /etc/nginx/ katalog.

$ tre /etc /nginx

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

Standard webrotkatalog for Nginx webserver er /usr/share/nginx/html/. Så det er her du bør oppbevare nettstedfilene 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 original Nginx -konfigurasjonsfil med følgende kommando:

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

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

$ sudo nano/etc/nginx/nginx.konf

Nå, skriv inn følgende linjer i /etc/nginx/nginx.konf fil og lagre filen.

bruker nginx nginx;
WORKER_PROCESSES Auto;
error_log/var/log/nginx/feil.Logg;
PID /Run /Nginx.PID;
arrangementer
WORKER_CONNECTIONS 1024;

http
inkluderer/etc/nginx/mime.typer;
Standard_type Applikasjon/Octet-Stream;
server
Lytt 80;
server_nameeksempel.com www.eksempel.com;
root/usr/share/nginx/html;
Indeksindeks.html;
Access_log/var/log/nginx/access.Logg;

Her, bruker alternativet brukes til å stille inn NGINX RUN -brukeren og gruppen til nginx henholdsvis.

De feil logg alternativet brukes til å stille inn feilloggfilbanen til /var/log/nginx/feil.Logg. Det er her feil relatert til Nginx -serveren vil bli 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 seksjon om nødvendig.

I server seksjon,

lytte Alternativet brukes til å konfigurere Nginx for å 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 å bruke disse domenenavnene.

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

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

Her, The rot Katalogen er /usr/share/nginx/html/.

Det er her alle nettstedfilene skal holdes. De indeks Alternativsett indeks.html som standardfil som skal tjene hvis det ikke blir bedt om noen spesifikk fil. For eksempel, hvis du besøker http: // 192.168.20.175/Myfile.html, da kommer du tilbake myfile.html fil. Men hvis du besøker http: // 192.168.20.175/, da vil Nginx sende deg indeks.HTML -fil som ingen spesifikk fil ble bedt om.

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

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

Nå, lage en ny indeks.html fil i /usr/share/nginx/html/ Katalog som følger:

Nå, skriv inn følgende linjer i indeks.html fil og lagre filen.

Hei Verden


© 2020 Linuxhint.com

Nå, start på nytt nginx Tjeneste som følger:

$ sudo SystemCTL Restart Nginx

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

Konfigurere feilsider:

Du kan konfigurere feilsider i nginx. For eksempel, hvis en side/fil/katalog ikke er tilgjengelig, vil HTTP -statuskode 404 bli returnert til nettleseren. Du kan angi en tilpasset HTML -feilside for HTTP -statuskode 404 som blir returnert til nettleseren.

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

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

Lag nå en fil 404.html i Nginx -nettroten /usr/share/nginx/html/ følgende:

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

Nå, skriv inn følgende linjer i 404.html og lagre filen.

Feil 404


Side ikke funnet


© 2020 Linuxhint.com

Nå, start på nytt nginx Tjeneste som følger:

$ sudo SystemCTL Restart Nginx

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

Hvis 404.html filen er i en annen filsystembane (la oss si /usr/share/nginx/html/feil/ katalog), kan du kartlegge nettadressen /404.html til det som følger:

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

..

Lag nå en ny katalog /usr/share/nginx/html/feil/ følgende:

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

Lag nå en ny fil 404.html I katalogen /usr/share/nginx/html/feil/ følgende:

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

Nå, skriv inn følgende linjer i 404.html fil og lagre filen.

SIDE IKKE FUNNET


GÅ HJEM IGJEN

Nå, start på nytt nginx Tjeneste som følger:

$ sudo SystemCTL Restart Nginx

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 å angi den samme feilsiden /404.html for HTTP -statuskoder 403 og 404, skrive den error_page Alternativ som følger:

error_page 403 404 /404.html;

Konfigurere logger:

I Nginx, den feil logg og Access_log Alternativer brukes til loggingsfeilmeldinger og tilgangsinformasjon.

Formatet til feil logg og Access_log Alternativene er:

error_log/sti/til/feil/log/fil [valgfritt: tilpasset-log-navn];
access_log/path/to/access/log/file [valgfritt: tilpasset log-navn];

Du kan definere dine egne feillogg- og tilgangsloggformater hvis du vil.

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

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

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

Det tilpassede loggformatet skal være vedlagt i enkelt sitater. Loggformatet kan defineres i en enkelt linje eller i flere linjer. Jeg har vist hvordan jeg skal definere loggformatet i flere linjer i denne artikkelen. Du vil ikke ha noen problemer med loggformat for en enkelt linje, stol på meg!

Når loggformatet enkel er definert, Access_log Alternativet brukes til å fortelle Nginx om å 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 på denne artikkelen.

Nå, start på nytt nginx Tjeneste som følger:

$ sudo SystemCTL Restart Nginx

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

$ sudo hale -f/var/log/nginx/tilgang.Logg

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

$ sudo hale -f/var/log/nginx/feil.Logg

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

$ sudo tail -f/var/log/nginx/feil, tilgang.Logg

Som du ser brukes det nye tilgangsloggformatet.

Å nekte tilgang til visse stier:

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

La oss si, nettstedet ditt administreres av Git, og du vil nekte tilgang til .git/ Katalog på nettroten din.

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

server
..
Sted ~ \.git
benekte alle;

..

Som du ser, tilgang til enhver vei som inneholder .git blir nektet.

Konfigurere komprimering:

Du kan komprimere nettinnholdet før du sender dem til nettleseren ved hjelp av Gzip For å lagre båndbreddebruk av Nginx -webserveren.

Jeg har noen jpeg -bilder i /usr/share/nginx/html/bilder/ katalog.

Jeg har tilgang til disse bildene ved hjelp av URI -banen /Bilder.

For å muliggjøre GZIP -komprimering for bare JPEG -bildene i URI -banen /Bilder, Skriv inn følgende linjer i server del 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 vil komprimerte filen være.

Filen blir bare komprimert 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 vil ikke bli komprimert.

De gzip_types brukes til å stille inn mime -typen på filene som vil bli komprimert.

Du kan finne MIME -type fra filutvidelser som følger:

$ grep jpg/etc/nginx/mime.Typer

Som du ser, for .jpg eller .JPEG Filutvidelse, MIME -typen er 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;

Nå, start på nytt nginx Tjeneste som følger:

$ sudo SystemCTL Restart Nginx

Som du ser sender Nginx GZIP -komprimerte bildefiler til nettleseren når du blir bedt om.

Som du kan se på skjermbildet nedenfor, er Gzip -komprimert fil mindre enn den originale filen.

$ sudo hale -f/var/log/nginx/tilgang.Logg

Aktivering av HTTPS:

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

Først, naviger til /etc/ssl/ Katalog som følger:

$ cd /etc /ssl

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

$ sudo openssl req -x509 -nodes -dager 365 -Newkey RSA: 2048 -Keyout
server.Key -out Server.crt

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

$ sudo dnf installasjon openssl -y

Skriv inn din 2-bokstavs landskode (i i.e. USA for USA, Storbritannia for Storbritannia, RU for Russland, CN for Kina) og presse .

Skriv inn ditt stat/provinsens navn og trykk på staten/provinsen .

Nå, skriv inn bynavnet ditt og trykk .

Skriv inn firmanavnet og trykk på firmanavnet .

Skriv inn organisasjonsenavnet til selskapet ditt som vil bruke dette sertifikatet og trykke nå .

Skriv inn det fullt kvalifiserte domenenavnet (FQDN) på NGINX -webserveren din og trykk . SSL -sertifikatet vil bare være gyldig hvis NGINX -webserveren er tilgjengelig ved hjelp av dette domenenavnet.

Nå, 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å, åpne 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;
..

Nå, start på nytt nginx Tjeneste som følger:

$ sudo SystemCTL Restart Nginx

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

Hvis du vil følge med, åpne /etc/verter fil som følger:

$ sudo nano /etc /verter

Legg deretter 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 følgende side. Du vil se Koblingen din er ikke sikker Melding fordi det er et selvsignert sertifikat. Dette er bare bra for å teste formål.

I det virkelige liv vil du kjøpe SSL -sertifikater fra sertifikatmyndigheter (CAS) og bruke dem. Så du vil ikke se denne typen meldinger.

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

SSL -informasjonen til www.eksempel.com.

Omdirigere HTTP -forespørsler til HTTPS:

Hvis noen besøker nettstedet ditt over HTTP -protokollen (http: // www.eksempel.com eller http: // 192.168.20.175) i stedet for https (https: // www.eksempel.com), du vil ikke avvise HTTP -forespørselen. Hvis du gjør det, vil du miste en besøkende. Det du virkelig bør gjøre er å omdirigere brukeren til SSL -aktivert nettsted. Det er veldig enkelt å gjøre.

Åpne først Nginx -konfigurasjonsfilen /etc/nginx/nginx.konf og lage en ny server Seksjon inne i http Seksjon som følger:

http
..
server
Lytt 80;
Server_name www.eksempel.com;
Returner 301 https: // www.eksempel.com $ request_uri;

..

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

bruker nginx nginx;
WORKER_PROCESSES Auto;
error_log/var/log/nginx/feil.Logg;
PID /Run /Nginx.PID;
arrangementer
WORKER_CONNECTIONS 1024;

http
inkluderer/etc/nginx/mime.typer;
Standard_type Applikasjon/Octet-Stream;
log_format enkel '[$ time_iso8601] $ request_method $ request_uri'
'[$ status] ($ request_time) -> $ bytes_sent byte';
server
Lytt 80;
Server_name www.eksempel.com;
Returner 301 https: // www.eksempel.com $ request_uri;

server
Lytt 443;
Server_name 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 enkel;
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;
Sted /404.html
root/usr/share/nginx/html/feil;

Sted ~ \.git
benekte alle;


Nå, start på nytt nginx Tjeneste som følger:

$ sudo SystemCTL Restart Nginx

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

Så det er slik du installerer og konfigurerer Nginx -webserveren på CentOS 8. Takk for at du leste denne artikkelen.