Nginx

Så här installerar du Nginx och konfigurerar på CentOS 8

Så här installerar du Nginx och konfigurerar på CentOS 8
Nginx är en snabb och lätt webbserver. Konfigurationsfilerna för Nginx är verkligen enkla och lätta att arbeta med. Det är ett bra alternativ till Apache-webbservern.  I den här artikeln ska jag visa dig hur du installerar och konfigurerar Nginx-webbservern på CentOS 8. Så, låt oss komma igång.

Installera Nginx:

Nginx finns tillgängligt i det officiella paketförvaret för CentOS 8. Så det är väldigt enkelt att installera.

Uppdatera först DNF-paketets lagringscache enligt följande:

$ sudo dnf makecache

Installera nu Nginx med följande kommando:

$ sudo dnf installera nginx

För att bekräfta installationen, tryck på Y och tryck sedan på .

Nginx ska installeras.

Hantera nginx-tjänsten:

Som standard, nginx tjänsten bör vara inaktiv (kör inte) och Inaktiverad (startar inte automatiskt vid start).

$ sudo systemctl status nginx

Du kan starta nginx tjänsten enligt följande:

$ sudo systemctl start nginx

nginx tjänsten bör vara löpning.

$ sudo systemctl status nginx

Lägg nu till nginx tjänsten till systemets start enligt följande:

$ sudo systemctl aktiverar nginx

Konfigurera brandväggen:

Du måste konfigurera brandväggen för att ge åtkomst till HTTP-port 80 och HTTPS-port 443 för att komma åt Nginx-webbservern från andra datorer i nätverket.

Du kan tillåta åtkomst till HTTP- och HTTPS-porten med följande kommando:

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

Kör följande kommando för att ändringarna ska träda i kraft:

$ sudo firewall-cmd --reload

Testa webbservern:

Du måste känna till IP-adressen eller domännamnet på Nginx-webbservern för att få åtkomst till den.

Du hittar IP-adressen till din Nginx-webbserver med följande kommando:

$ ip a

I mitt fall är IP-adressen 192.168.20.175. Det kommer att vara annorlunda för dig. Så se till att ersätta den med din från och med nu.

Besök nu http: // 192.168.20.175 från din webbläsare. Du bör se följande sida. Det betyder att Nginx webbserver fungerar.

Konfigurationsfiler för nginx:

Nginx webbserverns konfigurationsfiler finns i / etc / nginx / katalog.

$ tree / etc / nginx

/ etc / nginx / nginx.konf är Nginx huvudkonfigurationsfil.

Standardrotkatalogen för Nginx-webbservern är / usr / dela / nginx / html /. Så det är här du ska behålla dina webbplatsfiler.

Ställa in en grundläggande webbserver:

I det här avsnittet ska jag visa dig hur du ställer in en grundläggande Nginx-webbserver.

Ta först en säkerhetskopia av den ursprungliga Nginx-konfigurationsfilen med följande kommando:

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

Skapa nu en ny Nginx-konfigurationsfil enligt följande:

$ sudo nano / etc / nginx / nginx.konf

Skriv nu in följande rader i / etc / nginx / nginx.konf fil och spara filen.

användare nginx nginx;
worker_processes auto;
error_log / var / log / nginx / error.logga;
pid / run / nginx.pid;
 
evenemang
arbetarkopplingar 1024;

 
http
inkludera / etc / nginx / mime.typer;
default_type-applikation / octet-stream;
 
server
lyssna 80;
server_name exempel.com www.exempel.com;
root / usr / share / nginx / html;
indexindex.html;
access_log / var / log / nginx / access.logga;

Här, användare alternativet används för att ställa in Nginx-köranvändaren och gruppen till nginx respektive.

De felloggen alternativet används för att ställa in felloggfilens sökväg till / var / log / nginx / fel.logga. Här lagras fel relaterade till Nginx-servern.

Den huvudsakliga Nginx-serverkonfigurationen definieras i server sektion inuti http sektion. Du kan definiera mer än en server sektion inuti http avsnitt om det behövs.

I server sektion,

lyssna alternativet används för att konfigurera Nginx för att lyssna på port 80 (HTTP-port) för webbförfrågningar.

server namn alternativet används för att ställa in ett eller flera domännamn för Nginx-webbservern. Om dina DNS-inställningar är korrekta kan du komma åt Nginx-webbservern med dessa domännamn.

access_log används för att ställa in åtkomstloggfilens sökväg till / var / log / nginx / access.logga. När någon försöker komma åt Nginx-webbservern kommer åtkomstinformationen (i.e. IP-adress, URL, HTTP-statuskod) loggas till den här filen.

De plats alternativet används för att ställa in rotkatalogen för Nginx-webbservern.

Här, den rot katalog är / usr / dela / nginx / html /.

Det är här alla webbplatsfiler ska sparas. De index alternativuppsättningar index.html som standardfil som ska användas om ingen specifik fil begärs. Till exempel om du besöker http: // 192.168.20.175 / myfil.html, då kommer Nginx tillbaka min fil.html fil. Men om du besöker http: // 192.168.20.175 /, då skickar Nginx dig index.html-fil eftersom ingen specifik fil begärdes.

Ta nu bort alla filer från / usr / dela / nginx / html / katalog (webbrot) enligt följande:

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

Skapa nu en ny index.html filen i / usr / dela / nginx / html / katalog enligt följande:

Skriv nu in följande rader i index.html fil och spara filen.

Hej världen


© 2020 LinuxHint.com

Starta om nginx tjänsten enligt följande:

$ sudo systemctl starta om nginx

Besök nu http: // 192.168.20.175 från din webbläsare och du bör se följande sida. Grattis! Du har konfigurerat din första Nginx-webbserver.

Konfigurera felsidor:

Du kan konfigurera felsidor i Nginx. Till exempel, om en sida / fil / katalog inte är tillgänglig, kommer HTTP-statuskod 404 att returneras till webbläsaren. Du kan ställa in en anpassad HTML-felsida för HTTP-statuskoden 404 som returneras till webbläsaren.

För att göra det, lägg till följande rad i server avsnitt av nginx.konf fil.

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

Skapa nu en fil 404.html i Nginx-webbrot / usr / dela / nginx / html / som följer:

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

Skriv nu in följande rader i 404.html och spara filen.

Fel 404


sidan hittas inte


© 2020 LinuxHint.com

Starta om nginx tjänsten enligt följande:

$ sudo systemctl starta om nginx

Försök nu komma åt en obefintlig sökväg (http: // 192.168.20.175 / nopage.html) och följande felsida ska visas.

Om den 404.html filen finns i en annan filsystemsökväg (låt oss säga / usr / dela / nginx / html / fel / katalog) kan du mappa webbadressen / 404.html till det enligt följande:

server
..
error_page 404/404.html;
plats / 404.html
root / usr / share / nginx / html / fel;

..

Skapa nu en ny katalog  / usr / dela / nginx / html / fel / som följer:

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

Skapa nu en ny fil 404.html i katalogen / usr / dela / nginx / html / fel / som följer:

$ sudo nano / usr / dela / nginx / html / fel / 404.html

Skriv nu in följande rader i 404.html fil och spara filen.

SIDAN HITTAS INTE


ÅKA HEM

Starta om nginx tjänsten enligt följande:

$ sudo systemctl starta om nginx

Försök nu komma åt en obefintlig sökväg (http: // 192.168.20.175 / nopage.html) och du bör se den uppdaterade felsidan.

På samma sätt kan du ställa in felsidan för andra HTTP-statuskoder.

Du kan också ställa in samma felsida för flera HTTP-statuskoder. Till exempel för att ställa in samma felsida / 404.html för HTTP-statuskoder 403 och 404, skriv error_page alternativ enligt följande:

error_page 403 404/404.html;

Konfigurera loggar:

I Nginx är felloggen och access_log alternativ används för loggning av felmeddelanden och åtkomstinformation.

Format för felloggen och access_log alternativen är:

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

Du kan definiera din egen fellogg och få åtkomst till loggformat om du vill.

För att göra det, använd log_format alternativet i http avsnitt för att definiera ditt anpassade loggformat enligt följande.

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

Här är loggformatsnamnet enkel. Vissa nginx-variabler används för att definiera det anpassade loggformatet. Besök Nginx Embedded Variables Manual för att lära dig mer om alla Nginx-variabler.

Det anpassade loggformatet ska bifogas i enstaka offert. Loggformatet kan definieras på en rad eller i flera rader. Jag har visat hur man definierar loggformatet i flera rader i den här artikeln. Du kommer inte att ha några problem med enstaka loggformat, lita på mig!

En gång loggformatet enkel är definierad, access_log alternativet används för att berätta för Nginx att använda den som åtkomstlogg.

På samma sätt kan du ställa in ett anpassat felloggformat med felloggen alternativ.

Jag har bara konfigurerat anpassat loggformat för åtkomstloggen i den här artikeln.

Starta om nginx tjänsten enligt följande:

$ sudo systemctl starta om nginx

Nu kan du övervaka åtkomstloggfilen enligt följande:

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

Du kan också övervaka felloggfilen enligt följande:

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

Om du vill kan du övervaka åtkomstloggen och felloggfilerna samtidigt enligt följande:

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

Som du kan se används det nya åtkomstloggformatet.

Neka tillgång till vissa vägar:

Du kan använda reguljära uttryck för att matcha vissa URI-sökvägar och neka åtkomst till det i Nginx.

Låt oss säga, din webbplats hanteras av Git, och du vill neka åtkomst till .git / katalog på din webbrot.

För att göra det, skriv in följande rader i server avsnitt av / etc / nging / nginx.konf fil:

server
..
plats ~ \.git
förneka allt;

..

Som du kan se, åtkomst till vilken sökväg som helst .git är nekad.

Konfigurera kompression:

Du kan komprimera webbinnehåll innan du skickar det till webbläsaren med gzip för att spara bandbreddsanvändning av Nginx-webbservern.

Jag har några JPEG-bilder i / usr / dela / nginx / html / bilder / katalog.

Jag kan komma åt dessa bilder med URI-sökvägen /bilder.

För att aktivera gzip-komprimering för endast JPEG-bilder i URI-sökvägen /bilder, skriv in följande rader i server avsnitt av / etc / nginx / nginx.konf fil.

server
..
plats / bilder
gzip på;
gzip_comp_level 9;
gzip_min_längd 100000;
gzip_types image / jpeg;

..

Här, gzip_comp_level används för att ställa in kompressionsnivån. Det kan vara vilket nummer som helst från 1 till 9. Ju högre nivå, desto mindre blir den komprimerade filen.

Filen komprimeras endast om filens storlek är över gzip_min_length. Jag har ställt in det till cirka 100 kB i det här exemplet. Så JPEG-filer mindre än 100 kB komprimeras inte gzip.

De  gzip_types används för att ställa in mime-typen för filerna som ska komprimeras.

Du kan hitta mime-typ från filtillägg enligt följande:

$ grep jpg / etc / nginx / mime.typer

Som du kan se för .jpg eller .jpeg filändelsen är mime-typen bild / jpeg.

Du kan ställa in en eller flera mime-typer med gzip_types alternativ.

Om du vill ställa in flera mime-typer, se till att separera dem med mellanslag enligt följande:

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

Starta om nginx tjänsten enligt följande:

$ sudo systemctl starta om nginx

Som du kan se skickar Nginx gzip-komprimerade bildfiler till webbläsaren på begäran.

Som du kan se på skärmdumpen nedan är den komprimerade gzip-filen mindre än originalfilen.

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

Aktivera HTTPS:

Du kan aktivera SSL i Nginx mycket enkelt. I det här avsnittet ska jag visa dig hur du ställer in självsignerat SSL-certifikat i Nginx.

Navigera först till / etc / ssl / katalog enligt följande:

$ cd / etc / ssl

Generera nu en SSL-nyckel server.nyckel- och certifikat server.crt med följande kommando:

$ sudo openssl req -x509 -noder -dagar 365 -nyckel rsa: 2048 -keyout
server.nyckel-ut server.crt

NOTERA: Du måste ha openssl installerat för att detta ska fungera. Om openssl-kommandot inte är tillgängligt, installera openssl med följande kommando:

$ sudo dnf installerar openssl -y

Skriv nu in din landskod med två bokstäver (i.e. USA för USA, Storbritannien för Storbritannien, RU för Ryssland, CN för Kina) och press .

Skriv nu ditt stat / provinsnamn och tryck på .

Skriv nu ditt stadsnamn och tryck på .

Skriv nu ditt företagsnamn och tryck på .

Skriv nu in organisationsenhetsnamnet för ditt företag som kommer att använda detta certifikat och tryck .

Skriv nu in det fullständiga domännamnet (FQDN) på din Nginx-webbserver och tryck på . SSL-certifikatet gäller endast om Nginx-webbservern nås med detta domännamn.

Skriv nu din e-postadress och tryck .

Ditt SSL-certifikat ska vara klart.

SSL-certifikatet och nyckeln ska genereras i / etc / ssl / katalog.

$ ls -lh

Öppna nu Nginx-konfigurationsfilen / etc / nginx / nginx.konf och förändring lyssna hamna till 443 och skriv in följande rader i server sektion.

server
..
ssl på;
ssl_certificate / etc / ssl / server.crt;
ssl_certificate_key / etc / ssl / server.nyckel;
..

Starta om nginx tjänsten enligt följande:

$ sudo systemctl starta om nginx

I verkliga livet har du rätt DNS-inställning. Men för teständamål har jag konfigurerat lokalt filbaserat domännamn på den dator som jag har använt för att komma åt Nginx-webbservern från.

Om du vill följa med, öppna / etc / värdar filen enligt följande:

$ sudo nano / etc / hosts

Lägg sedan till följande rad i / etc / värdar fil.

192.168.20.175 www.exempel.com

Försök nu besöka https: // www.exempel.com och du bör se följande sida. Du får se Din anslutning är inte säker meddelande eftersom det är ett självsignerat certifikat. Detta är endast bra för teständamål.

I verkliga livet kommer du att köpa SSL-certifikat från certifikatutfärdare (CA) och använda dem. Så du ser inte den här typen av meddelanden.

Som du kan se serverade Nginx webbsidan via HTTPS. Så SSL fungerar.

SSL-informationen för www.exempel.com.

Omdirigera HTTP-förfrågningar till HTTPS:

Om någon besöker din webbplats via HTTP-protokoll (http: // www.exempel.com eller http: // 192.168.20.175) istället för HTTPS (https: // www.exempel.com), du vill inte avvisa HTTP-begäran. Om du gör det kommer du att förlora en besökare. Vad du verkligen borde göra är att omdirigera användaren till den SSL-aktiverade webbplatsen. Det är väldigt enkelt att göra.

Öppna först Nginx-konfigurationsfilen / etc / nginx / nginx.konf och skapa en ny server sektion inuti http avsnittet enligt följande:

http
..
server
lyssna 80;
servernamn www.exempel.com;
returnera 301 https: // www.exempel.com $ request_uri;

..

Detta är finalen / etc / nginx / nginx.konf fil:

användare nginx nginx;
worker_processes auto;
error_log / var / log / nginx / error.logga;
pid / run / nginx.pid;
evenemang
arbetarkopplingar 1024;

http
inkludera / etc / nginx / mime.typer;
default_type application / octet-stream;
log_format enkelt '[$ time_iso8601] $ request_method $ request_uri'
'[$ status] ($ request_time) -> $ bytes_sent bytes';
 
server
lyssna 80;
servernamn www.exempel.com;
returnera 301 https: // www.exempel.com $ request_uri;

server
lyssna 443;
servernamn www.exempel.com;
ssl på;
ssl_certificate / etc / ssl / server.crt;
ssl_certificate_key / etc / ssl / server.nyckel;
access_log / var / log / nginx / access.logga enkelt;
plats /
root / usr / share / nginx / html;
indexindex.html;

plats / bilder
gzip på;
gzip_comp_level 9;
gzip_min_längd 100000;
gzip_types image / jpeg;

error_page 404/404.html;
plats / 404.html
root / usr / share / nginx / html / fel;

plats ~ \.git
förneka allt;


Starta om nginx tjänsten enligt följande:

$ sudo systemctl starta om nginx

Om du försöker komma åt http: // 192 nu.168.20.175 eller http: // www.exempel.com kommer du att omdirigeras till https: // www.exempel.com.

Så det är så du installerar och konfigurerar Nginx-webbservern på CentOS 8. Tack för att du läste den här artikeln.

Topp 5 spelinspelningskort
Vi har alla sett och älskat streaming av spel på YouTube. PewDiePie, Jakesepticye och Markiplier är bara några av de bästa spelarna som har tjänat mil...
Hur man utvecklar ett spel på Linux
För ett decennium sedan skulle inte många Linux-användare förutsäga att deras favoritoperativsystem en dag skulle vara en populär spelplattform för ko...
Portar med öppen källkod för kommersiella spelmotorer
Gratis, öppen källkod och plattformsmekaniska rekreationer kan användas för att spela gamla såväl som några av de ganska senaste speltitlarna. I den h...