Nginx

Nginx installeren en configureren op CentOS 8

Nginx installeren en configureren op CentOS 8
Nginx is een snelle en lichtgewicht webserver. De configuratiebestanden van Nginx zijn heel eenvoudig en gemakkelijk om mee te werken. Het is een geweldig alternatief voor de Apache-webserver.  In dit artikel laat ik je zien hoe je de Nginx-webserver op CentOS 8 installeert en configureert. Dus laten we beginnen.

Nginx installeren:

Nginx is beschikbaar in de officiële pakketrepository van CentOS 8. Het is dus heel eenvoudig te installeren.

Werk eerst de cache van de DNF-pakketrepository als volgt bij:

$ sudo dnf makecache

Installeer nu Nginx met de volgende opdracht:

$ sudo dnf installeer nginx

Om de installatie te bevestigen, drukt u op Y en druk vervolgens op .

Nginx moet worden geïnstalleerd.

De nginx-service beheren:

Standaard, nginx service zou moeten zijn inactief (niet actief) en gehandicapt (start niet automatisch bij opstarten).

$ sudo systemctl status nginx

U kunt beginnen met de nginx dienst als volgt:

$ sudo systemctl start nginx

nginx service zou moeten zijn rennen.

$ sudo systemctl status nginx

Voeg nu toe nginx service aan het opstarten van het systeem als volgt:

$ sudo systemctl nginx inschakelen

De firewall configureren:

U moet de firewall configureren om toegang tot de HTTP-poort 80 en HTTPS-poort 443 toe te staan ​​om toegang te krijgen tot de Nginx-webserver vanaf andere computers in het netwerk.

U kunt toegang tot de HTTP- en HTTPS-poort toestaan ​​met de volgende opdracht:

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

Voer nu de volgende opdracht uit om de wijzigingen door te voeren:

$ sudo firewall-cmd --reload

De webserver testen:

Je moet het IP-adres of de domeinnaam van de Nginx-webserver weten om er toegang toe te krijgen.

Je kunt het IP-adres van je Nginx-webserver vinden met het volgende commando:

$ ip a

In mijn geval is het IP-adres: 192.168.20.175. Het zal voor jou anders zijn. Dus zorg ervoor dat je het vanaf nu vervangt door de jouwe.

Ga nu naar http://192.168.20.175 vanuit uw webbrowser. Je zou de volgende pagina moeten zien:. Het betekent dat de Nginx-webserver werkt.

Configuratiebestanden van nginx:

Nginx-webserverconfiguratiebestanden bevinden zich in de /etc/nginx/ map.

$ boom /etc/nginx

/etc/nginx/nginx.conf is het belangrijkste Nginx-configuratiebestand.

De standaard webhoofdmap van de Nginx-webserver is: /usr/share/nginx/html/. Dit is dus waar u uw websitebestanden moet bewaren.

Een basiswebserver instellen:

In dit gedeelte laat ik je zien hoe je een basis Nginx-webserver opzet.

Maak eerst een back-up van het originele Nginx-configuratiebestand met de volgende opdracht:

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

Maak nu als volgt een nieuw Nginx-configuratiebestand:

$ sudo nano /etc/nginx/nginx.conf

Typ nu de volgende regels in de /etc/nginx/nginx.conf bestand en sla het bestand op.

gebruiker nginx nginx;
worker_processes auto;
error_log /var/log/nginx/error.logboek;
pid /run/nginx.pid;
 
evenementen
worker_connections 1024;

 
http
omvatten             /etc/nginx/mime.types;
default_type        applicatie/octet-stream;
 
server
luister          80;
servernaam     voorbeeld.com www.voorbeeld.com;
root            /usr/share/nginx/html;
index           index.html;
access_log      /var/log/nginx/access.logboek;

Hier, gebruiker optie wordt gebruikt om de Nginx run gebruiker en groep in te stellen op nginx respectievelijk.

De error_log optie wordt gebruikt om het pad van het foutenlogboekbestand in te stellen op /var/log/nginx/fout.log. Hier worden fouten met betrekking tot de Nginx-server opgeslagen.

De hoofdconfiguratie van de Nginx-server is gedefinieerd in de server sectie binnen de http sectie. U kunt er meer dan één definiëren server sectie binnen de http sectie indien nodig.

In de server sectie,

luister optie wordt gebruikt om Nginx te configureren om te luisteren naar poort 80 (HTTP-poort) voor webverzoeken.

server naam optie wordt gebruikt om een ​​of meer domeinnamen in te stellen voor de Nginx-webserver. Als je DNS-instellingen correct zijn, heb je toegang tot de Nginx-webserver met behulp van deze domeinnamen.

access_log wordt gebruikt om het pad van het toegangslogbestand in te stellen op: /var/log/nginx/access.log. Wanneer iemand toegang probeert te krijgen tot de Nginx-webserver, wordt de toegangsinformatie (i.e. IP-adres, URL, HTTP-statuscode) worden in dit bestand gelogd.

De plaats optie wordt gebruikt om de hoofdmap van de Nginx-webserver in te stellen.

Hier de wortel map is /usr/share/nginx/html/.

Dit is waar alle websitebestanden moeten worden bewaard. De inhoudsopgave optiesets inhoudsopgave.html als het standaardbestand dat moet worden weergegeven als er geen specifiek bestand wordt gevraagd. Als u bijvoorbeeld http://192 . bezoekt.168.20.175/mijnbestand.html , dan keert je Nginx terug mijn bestand.html het dossier. Maar als u http://192 . bezoekt.168.20.175/, dan stuurt Nginx je een index.html-bestand omdat er geen specifiek bestand is aangevraagd.

Verwijder nu alle bestanden van de /usr/share/nginx/html/ directory (webroot) als volgt:

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

Maak nu een nieuwe inhoudsopgave.html bestand in de /usr/share/nginx/html/ map als volgt:

Typ nu de volgende regels in inhoudsopgave.html bestand en sla het bestand op.

Hallo Wereld


© 2020 LinuxHint.com

Nu opnieuw opstarten nginx dienst als volgt:

$ sudo systemctl herstart nginx

Ga nu naar http://192.168.20.175 van uw webbrowser en u zou de volgende pagina moeten zien:. Proficiat! Je hebt je eerste Nginx-webserver opgezet.

Foutpagina's configureren:

U kunt foutpagina's configureren in Nginx. Als een pagina/bestand/map bijvoorbeeld niet beschikbaar is, wordt HTTP-statuscode 404 teruggestuurd naar de browser. U kunt een aangepaste HTML-foutpagina instellen voor de HTTP-statuscode 404 die wordt teruggestuurd naar de browser.

Om dat te doen, voegt u de volgende regel toe in de server gedeelte van nginx.conf het dossier.

server

error_page 404 /404.html;

Maak nu een bestand 404.html in de Nginx-webroot /usr/share/nginx/html/ als volgt:

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

Typ nu de volgende regels in 404.html en sla het bestand op.

foutmelding 404


Pagina niet gevonden


© 2020 LinuxHint.com

Nu opnieuw opstarten nginx dienst als volgt:

$ sudo systemctl herstart nginx

Probeer nu toegang te krijgen tot een niet-bestaand pad (http://192.168.20.175/nopagina.html) en u zou de volgende foutpagina moeten zien:.

Als de 404.html bestand bevindt zich in een ander bestandssysteempad (laten we zeggen /usr/share/nginx/html/errors/ directory), kunt u de URL toewijzen /404.html daarop als volgt:

server

error_page 404 /404.html;
locatie /404.html
root            /usr/share/nginx/html/errors;


Maak nu een nieuwe map  /usr/share/nginx/html/errors/ als volgt:

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

Maak nu een nieuw bestand aan 404.html in de  directory /usr/share/nginx/html/errors/ als volgt:

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

Typ nu de volgende regels in de 404.html bestand en sla het bestand op.

PAGINA NIET GEVONDEN


GA TERUG NAAR HUIS

Nu opnieuw opstarten nginx dienst als volgt:

$ sudo systemctl herstart nginx

Probeer nu toegang te krijgen tot een niet-bestaand pad (http://192.168.20.175/nopagina.html) en u zou de bijgewerkte foutpagina moeten zien.

Op dezelfde manier kunt u een foutpagina instellen voor andere HTTP-statuscodes.

U kunt dezelfde foutpagina ook instellen voor meerdere HTTP-statuscodes. Om bijvoorbeeld dezelfde foutpagina in te stellen /404.html voor de HTTP-statuscodes 403 en 404, Schrijf de error_page optie als volgt:

error_page    403 404    /404.html;

Logboeken configureren:

In Nginx, de error_log en access_log opties worden gebruikt voor het loggen van foutmeldingen en toegangsinformatie.

Het formaat van de error_log en access_log opties zijn:

error_log /path/to/error/log/file [optioneel:custom-log-name];
access_log /pad/naar/toegang/log/bestand [optioneel:aangepaste-log-naam];

U kunt uw eigen foutenlogboek definiëren en logformaten openen als u dat wilt.

Gebruik hiervoor de log_format optie in de http sectie om uw aangepaste logformaat als volgt te definiëren:.

http

log_format simple      '[$time_iso8601] $request_method $request_uri '
'[$status] ($request_time) -> $bytes_sent bytes';

server

access_log /var/log/nginx/access.log eenvoudig;


Hier is de naam van het logformaat gemakkelijk. Sommige nginx-variabelen worden gebruikt om het aangepaste logformaat te definiëren. Bezoek de Nginx Embedded Variables Manual voor meer informatie over alle Nginx-variabelen.

Het aangepaste logformaat moet tussen enkele aanhalingstekens staan. Het logformaat kan worden gedefinieerd in een enkele regel of in meerdere regels. Ik heb in dit artikel laten zien hoe je het logformaat in meerdere regels definieert. U zult geen problemen hebben met een logformaat met één regel, geloof me!

Zodra het logformaat gemakkelijk is gedefinieerd, access_log optie wordt gebruikt om Nginx te vertellen om het te gebruiken als toegangslog.

Op dezelfde manier kunt u een aangepast foutenlogboekformaat instellen met behulp van de error_log keuze.

Ik heb alleen een aangepast logboekformaat geconfigureerd voor het toegangslogboek in dit artikel.

Nu opnieuw opstarten nginx dienst als volgt:

$ sudo systemctl herstart nginx

Nu kunt u het toegangslogbestand als volgt controleren:

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

U kunt het foutenlogboekbestand ook als volgt controleren:

$ sudo staart -f /var/log/nginx/errorr.log

Als u wilt, kunt u het toegangslogboek en het foutenlogboek als volgt tegelijkertijd controleren:

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

Zoals u kunt zien, wordt de nieuwe indeling voor toegangslogboeken gebruikt.

Toegang tot bepaalde paden weigeren:

U kunt reguliere expressies gebruiken om bepaalde URI-paden te matchen en de toegang ertoe weigeren in Nginx.

Laten we zeggen dat uw website wordt beheerd door Git en dat u de toegang tot de .git/ map in uw webroot.

Typ hiervoor de volgende regels in de the server gedeelte van /etc/nging/nginx.conf het dossier:

server

locatie ~ \.git
alles ontkennen;


Zoals je kunt zien, toegang tot elk pad dat bevat .git wordt geweigerd.

Compressie configureren:

U kunt webinhoud comprimeren voordat u ze naar de browser verzendt met gzip om bandbreedtegebruik van de Nginx-webserver te besparen.

Ik heb een aantal JPEG-afbeeldingen in de /usr/share/nginx/html/images/ map.

Ik heb toegang tot deze afbeeldingen via het URI-pad /afbeeldingen.

Gzip-compressie inschakelen voor alleen de JPEG-afbeeldingen in het URI-pad /afbeeldingen, typ de volgende regels in de server gedeelte van /etc/nginx/nginx.conf het dossier.

server

locatie /afbeeldingen
gzip aan;
gzip_comp_level 9;
gzip_min_lengte 100000;
gzip_types afbeelding/jpeg;


Hier, gzip_comp_level wordt gebruikt om het compressieniveau in te stellen. Het kan elk getal zijn van 1 tot 9. Hoe hoger het niveau, hoe kleiner het gecomprimeerde bestand zal zijn.

Het bestand wordt alleen gecomprimeerd als de grootte van het bestand groter is gzip_min_length. Ik heb het in dit voorbeeld ingesteld op ongeveer 100 KB. JPEG-bestanden kleiner dan 100 KB worden dus niet gzip-gecomprimeerd.

De  gzip_types wordt gebruikt om het mime-type in te stellen van de bestanden die worden gecomprimeerd.

U kunt het mime-type van bestandsextensies als volgt vinden:

$ grep jpg /etc/nginx/mime.types

Zoals je kunt zien, voor .jpg of .jpeg bestandsextensie, het mime-type is afbeelding/jpeg.

U kunt een of meer mime-types instellen met gzip_types keuze.

Als je meerdere mime-types wilt instellen, zorg er dan voor dat je ze als volgt scheidt met spaties:

"
gzip_types afbeelding/jpeg-afbeelding/png-afbeelding/gif;

Nu opnieuw opstarten nginx dienst als volgt:

$ sudo systemctl herstart nginx

Zoals je kunt zien, stuurt Nginx op verzoek gzip-gecomprimeerde afbeeldingsbestanden naar de browser.

Zoals je kunt zien in de onderstaande schermafbeelding, is het gzip-gecomprimeerde bestand kleiner dan het originele bestand.

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

HTTPS inschakelen:

Je kunt SSL heel eenvoudig in Nginx inschakelen. In deze sectie laat ik je zien hoe je een zelfondertekend SSL-certificaat in Nginx instelt.

Navigeer eerst naar de /etc/ssl/ map als volgt:

$ cd /etc/ssl

Genereer nu een SSL-sleutel server.sleutel en certificaat server.crt met het volgende commando:

$ sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout
server.key-out server.crt

OPMERKING: Je moet hebben openssl geïnstalleerd om dit te laten werken. Als de opdracht openssl niet beschikbaar is, installeer dan openssl met het volgende commando:

$ sudo dnf install openssl  -y

Typ nu uw 2-letterige landcode in (i.e. VS voor VS, VK voor Verenigd Koninkrijk, RU voor Rusland, CN voor China) en druk op .

Typ nu de naam van uw staat/provincie en druk op .

Typ nu uw plaatsnaam en druk op .

Typ nu uw bedrijfsnaam en druk op .

Typ nu de naam van de organisatie-eenheid van uw bedrijf dat dit certificaat zal gebruiken en druk op .

Typ nu de volledig gekwalificeerde domeinnaam (FQDN) van uw Nginx-webserver en druk op . Het SSL-certificaat is alleen geldig als de Nginx-webserver wordt benaderd met deze domeinnaam.

Typ nu uw e-mailadres in en druk op .

Je SSL-certificaat zou klaar moeten zijn.

Het SSL-certificaat en de sleutel moeten worden gegenereerd in de /etc/ssl/ map.

$ ls -lh

Open nu het Nginx-configuratiebestand /etc/nginx/nginx.conf en veranderen luister haven naar 443 en typ de volgende regels in de server sectie.

server

ssl aan;
ssl_certificaat /etc/ssl/server.crt;
ssl_certificate_key /etc/ssl/server.sleutel;

Nu opnieuw opstarten nginx dienst als volgt:

$ sudo systemctl herstart nginx

In het echte leven heb je de juiste DNS-instellingen. Maar voor testdoeleinden heb ik een lokale, op bestanden gebaseerde domeinnaam geconfigureerd op de computer die ik heb gebruikt om toegang te krijgen tot de Nginx-webserver van.

Als je mee wilt doen, open dan de /etc/hosts bestand als volgt:

$ sudo nano /etc/hosts

Voeg vervolgens de volgende regel toe aan de /etc/hosts het dossier.

192.168.20.175 www.voorbeeld.com

Probeer nu https://www . te bezoeken.voorbeeld.com en je zou de volgende pagina moeten zien. Je zult zien Je verbinding is niet veilig bericht omdat het een zelfondertekend certificaat is. Dit is alleen goed voor testdoeleinden.

In het echte leven koopt u SSL-certificaten van certificeringsinstanties (CA's) en gebruikt u deze. Je zult dit soort berichten dus niet zien.

Zoals je kunt zien, heeft Nginx de webpagina via HTTPS geleverd. Dus SSL werkt.

De SSL-informatie van www.voorbeeld.com.

HTTP-verzoeken omleiden naar HTTPS:

Als iemand uw website bezoekt via het HTTP-protocol (http://www.voorbeeld.com of http://192.168.20.175) in plaats van HTTPS (https://www.voorbeeld.com), wilt u het HTTP-verzoek niet weigeren. Als je dat doet, verlies je een bezoeker. Wat u echt moet doen, is de gebruiker omleiden naar de SSL-enabled site. Het is heel eenvoudig om te doen.

Open eerst het Nginx-configuratiebestand /etc/nginx/nginx.conf en maak een nieuwe server sectie binnen de http sectie als volgt:

http

server
luister 80;
servernaam www.voorbeeld.com;
retour 301 https://www.voorbeeld.com$request_uri;


Dit is de finale /etc/nginx/nginx.conf het dossier:

gebruiker nginx nginx;
worker_processes auto;
error_log /var/log/nginx/error.logboek;
pid /run/nginx.pi;
evenementen
worker_connections 1024;

http
omvatten             /etc/nginx/mime.types;
default_type        applicatie/octet-stream;
log_format simple   '[$time_iso8601] $request_method $request_uri '
'[$status] ($request_time) -> $bytes_sent bytes';
 
server
luister 80;
servernaam www.voorbeeld.com;
retour 301 https://www.voorbeeld.com$request_uri;

server
luister          443;
servernaam     www.voorbeeld.com;
ssl aan;
ssl_certificate /etc/ssl/server.crt;
ssl_certificate_key /etc/ssl/server.sleutel;
access_log      /var/log/nginx/access.log eenvoudig;
plaats /
root            /usr/share/nginx/html;
index           index.html;

locatie /afbeeldingen
gzip aan;
gzip_comp_level 9;
gzip_min_lengte 100000;
gzip_types afbeelding/jpeg;

error_page 404 /404.html;
locatie /404.html
root            /usr/share/nginx/html/errors;

locatie ~ \.git
alles ontkennen;


Nu opnieuw opstarten nginx dienst als volgt:

$ sudo systemctl herstart nginx

Als u nu probeert toegang te krijgen tot http://192.168.20.175 of http://www.voorbeeld.com, wordt u doorgestuurd naar https://www.voorbeeld.com.

Dus zo installeer en configureer je de Nginx-webserver op CentOS 8. Bedankt voor het lezen van dit artikel.

Cursor springt of beweegt willekeurig tijdens het typen in Windows 10
Als u merkt dat uw muiscursor vanzelf springt of beweegt, automatisch, willekeurig tijdens het typen op een Windows-laptop of -computer, dan kunnen en...
De scrollrichting van de muis en touchpads omkeren in Windows 10
Muis en Touchpads maken computergebruik niet alleen eenvoudig, maar ook efficiënter en minder tijdrovend. We kunnen ons een leven zonder deze apparate...
Hoe de muisaanwijzer en cursorgrootte, kleur en schema op Windows 10 te veranderen
De muisaanwijzer en cursor in Windows 10 zijn zeer belangrijke aspecten van het besturingssysteem. Dit geldt ook voor andere besturingssystemen, dus i...