Nginx er en yderst effektiv og skalerbar webserver, der er bredt anerkendt for sin evne til at håndtere et stort antal samtidige forbindelser med lavt ressourceforbrug. Den er ideel til at servere statisk indhold hurtigt, fungere som en omvendt proxy og afbalancere belastning på tværs af flere servere. Med sin modulære arkitektur kan Nginx nemt konfigureres til at imødekomme en bred vifte af webserverbehov, herunder SSL/TLS-understøttelse, caching og URL-omskrivning, hvilket gør det til en alsidig løsning til både små udrulninger og miljøer med høj trafik.
På Fedora 40 eller 39 kan du installere Nginx ved hjælp af Fedoras indbyggede pakkehåndteringsværktøjer, som sikrer, at du har en sikker og opdateret version af softwaren. Denne vejledning fører dig gennem installationsprocessen og sikrer, at Nginx er korrekt konfigureret til at håndtere dine webserverkrav. Uanset om du er vært for et simpelt websted eller administrerer komplekse webtjenester, giver Nginx på Fedora den pålidelighed og ydeevne, du har brug for.
Opdater Fedora før Nginx-installation
Til at begynde med er det afgørende at opdatere dit Fedora-system. Dette trin sikrer, at alle dit systems pakker er aktuelle, hvilket baner vejen for en smidig NGINX-installation.
Udfør kommandoen nedenfor:
sudo dnf upgrade --refresh
Installer Nginx via DNF Command
Fedora inkluderer NGINX i sit standardlager, og tilbyder typisk den seneste eller helt nye version. Denne tilgængelighed forenkler installation og fremtidig vedligeholdelse, især uden for strenge produktionsmiljøer, hvor de nyeste funktioner i NGINX ønskes.
Installer NGINX på dit Fedora-system med denne kommando:
sudo dnf install nginx
Bekræft Nginx-installation
Når NGINX er installeret, er det god praksis at bekræfte installationen. Denne verifikation hjælper med at sikre, at NGINX er korrekt sat op og fungerer på dit system.
Tjek den installerede version af NGINX ved at køre:
nginx -v
Outputtet skulle vise den installerede NGINX-version, hvilket bekræfter en vellykket installation.
Konfigurer firewallregler for NGINX
Justering af firewall-indstillinger for HTTP og HTTPS
NGINX kræver, at specifikke porte er åbne for at håndtere webtrafik. Som standard konfigurerer Fedoras firewall ikke automatisk disse regler. For at NGINX kan levere webindhold, skal du manuelt tilføje regler for HTTP (port 80) og HTTPS (port 443). Brug følgende kommandoer til at justere dine firewallindstillinger:
Åbn HTTP-port 80:
sudo firewall-cmd --permanent --zone=public --add-service=http
For HTTPS-port 443:
sudo firewall-cmd --permanent --zone=public --add-service=https
Anvendelse af firewallændringer
Når du har tilføjet de nødvendige tjenester, skal du anvende de nye firewall-regler ved at genindlæse firewalld:
sudo firewall-cmd --reload
Denne handling aktiverer de nye indstillinger og sikrer, at dit Fedora-system er forberedt til at dirigere HTTP- og HTTPS-trafik til NGINX.
Bekræfter NGINX-tjenestestatus
Kontrol af NGINX Service Health
Efter installation af NGINX er det afgørende at bekræfte, at tjenesten er operationel. Dette verifikationstrin sikrer, at NGINX kører korrekt på dit Fedora-system. Brug følgende kommando til at kontrollere status for NGINX-tjenesten:
systemctl status nginx
Denne kommando anmoder systemets servicemanager om at levere en statusrapport om NGINX, der angiver, om tjenesten er aktiv og kører uden problemer.
Aktivering og start af NGINX Service
Hvis NGINX er inaktivt, skal du starte tjenesten og aktivere den til at starte ved opstart. Udfør følgende kommando for både at starte NGINX nu og indstille den til automatisk at starte ved systemstart:
sudo systemctl enable nginx --now
Denne kommando justerer systemets servicekonfigurationer og sikrer, at NGINX kører og indstilles til at fortsætte ved genstart.
Test af NGINX-konfiguration
For at bekræfte, at NGINX er korrekt konfigureret og responsivt, skal du gå til standard NGINX-landingssiden. Find først din servers IP-adresse med denne kommando:
curl -4 icanhazip.com
Hvis curl-kommandoen ikke er tilgængelig, skal du installere den ved at bruge:
sudo dnf install curl
Ved vellykket udførelse vil du modtage et output, der viser serverens IP-adresse, formateret som XXX.XXX.XXX.XXX.
Adgang til standard NGINX-siden
Med serverens IP-adresse kan du nu navigere til NGINX's standard landingsside. Åbn din webbrowser og indtast følgende URL, og erstat din_server_ip med den faktiske IP-adresse:
http://your_server_ip
Alternativt, hvis du udfører denne kontrol på den lokale maskine, hvor NGINX er installeret, kan du bruge:
http://localhost
Du bør blive mødt med standard NGINX velkomstside, der bekræfter, at webserveren er korrekt installeret og serverer sider.
Ved at få adgang til NGINX-testsiden validerer du NGINX's vellykkede opsætning og klarhed til yderligere konfiguration og udrulning af webapplikationer.
Konfigurer domænekatalogstruktur til NGINX
For at starte opsætningen til hosting af et domæne, såsom "example.com", skal du begynde med at konstruere den nødvendige mappestruktur i /var/www/. Under hele denne proces skal du erstatte "dit_domæne" med dit faktiske domænenavn.
Opret domænekatalog
Generer domænets rodmappe til at rumme webstedets filer. Parameteren -p sikrer, at eventuelle nødvendige overordnede mapper også oprettes:
sudo mkdir -p /var/www/your_domain/html
Indstil mappeejerskab
Efter at have oprettet biblioteket, er det afgørende at indstille det korrekte ejerskab. Denne handling tildeler din brugerkonto som ejer, hvilket giver dig mulighed for at ændre webstedets filer:
sudo chown -R $USER:$USER /var/www/your_domain/html
Konfigurer mappetilladelser
Derefter skal du ændre bibliotekstilladelserne for at sikre og definere adgangsniveauer. Følgende kommando angiver fulde tilladelser for ejeren og kun læse og udføre tilladelser for andre, hvilket er standardpraksis for webindholdsmapper:
sudo chmod -R 755 /var/www/your_domain
Mens nogle konfigurationer foreslår at bruge /usr/share/nginx/html, anbefales mappen /var/www på grund af dets enkelhed og brugervenlighed for dem, der er nye til serveradministration.
Opret en HTML-testside til Nginx-testen
Opret HTML-testsiden
Start oprettelsen af en test HTML-side for at bekræfte din NGINX-servers driftsstatus. Denne side vil validere den korrekte opsætning af din NGINX installation og serverblok mapper.
Start nano-teksteditoren for at begynde at lave din testside:
nano /var/www/your_domain/html/index.html
Inden for nano-editoren skal du udfylde din fil med følgende HTML-struktur, og sørg for at erstatte dit_domæne med dit faktiske domænenavn:
<!DOCTYPE html>
<html>
<head>
<title>Welcome to your_domain!</title>
</head>
<body>
<h1>Success! The your_domain server block is working!</h1>
</body>
</html>
Gemmer og afslutter editoren
Når du har indtastet HTML-indholdet, skal du gemme dine fremskridt ved at trykke på CTRL+O. Bekræft gemmehandlingen og forlad derefter editoren med CTRL+X.
Oprettelse af denne test-HTML-side er et afgørende trin i at verificere den korrekte opsætning af din NGINX-server og sikre, at den er konfigureret og klar til visning af indhold.
Opret Nginx-serverblok
Oprettelse af biblioteksstruktur til serverblokke
Begynd med at etablere den mappestruktur, der er nødvendig for NGINX-serverblokke. Udfør kommandoerne nedenfor for at oprette de websteder-tilgængelige og websteder-aktiverede mapper, som vil huse dine serverblokkonfigurationer:
sudo mkdir /etc/nginx/sites-available
sudo mkdir /etc/nginx/sites-enabled
Konfiguration af NGINX-hovedkonfigurationsfilen
Derefter skal du ændre NGINX-hovedkonfigurationsfilen til at inkludere dine serverblokke. Åbn filen nginx.conf med følgende kommando:
sudo nano /etc/nginx/nginx.conf
Inden i filen skal du kommentere linjen, der inkluderer standardserverblokkene, og tilføje en linje for at inkludere serverblokke fra den webstedsaktiverede mappe:
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;
events {
worker_connections 1024;
}
http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 4096;
include /etc/nginx/mime.types;
default_type application/octet-stream;
###EDIT HERE### #
# include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*.conf;
}
Gem dine ændringer med CTRL+O og afslut med CTRL+X.
Udarbejdelse af dit domænes serverblokfil
Opret nu en serverblokkonfigurationsfil til dit domæne. Erstat dit_domæne med dit faktiske domænenavn:
sudo nano /etc/nginx/sites-available/your_domain.conf
Indsæt følgende konfiguration, juster server_name og rod-direktiverne, så de matcher dit domæne og dokumentrod:
server {
listen 80;
listen [::]:80;
server_name your_domain www.your_domain;
root /var/www/your_domain/html;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
}
Efter at have tilpasset konfigurationen skal du gemme filen (CTRL+O) og afslutte (CTRL+X).
Aktiver Nginx Server Block
Aktiver dit domænes serverblokering ved at oprette et symbolsk link til den webstedsaktiverede mappe:
sudo ln -s /etc/nginx/sites-available/your_domain.conf /etc/nginx/sites-enabled/
Dette trin sikrer, at NGINX inkluderer din serverblok under den næste genindlæsning.
Tweaking Hash Bucket Size i NGINX-konfiguration
Før færdiggørelse er det afgørende at justere server_names_hash_bucket_size for at forhindre potentielle konfigurationsproblemer. Åbn filen nginx.conf igen:
sudo nano /etc/nginx/nginx.conf
Sørg for, at følgende linje ikke er kommenteret eller tilføjet:
server_names_hash_bucket_size 64;
Test af NGINX-konfiguration
Valider din NGINX-konfiguration for at undgå runtime-fejl:
sudo nginx -t
Se efter en succesmeddelelse, der angiver en gyldig konfiguration.
Genstarter NGINX for at anvende ændringer
Hvis konfigurationstesten er vellykket, skal du fortsætte med at genstarte NGINX for at anvende dine ændringer:
sudo systemctl restart nginx
Bekræftelse af din serverblokering
For at bekræfte, at din serverblokering er aktiv, skal du navigere til dit domæne i en webbrowser.
Hvis testsiden ikke vises som forventet, skal du kontrollere for eventuelle standardserverblokke i nginx.conf, der muligvis skal fjernes.
Yderligere kommandoer til Nginx
Sikker Nginx med Let's Encrypt SSL Free Certificate
Installer Certbot til NGINX
Forøg sikkerheden på din NGINX-server ved at aktivere HTTPS med et gratis SSL-certifikat fra Let's Encrypt. Begynd med at installere Certbot-softwaren, som vil automatisere certifikatanskaffelsesprocessen:
sudo dnf install python3-certbot-nginx
Få og installer SSL-certifikatet
Med Certbot installeret kan du nu få dit SSL-certifikat. Kør følgende kommando, og erstat e-mailen og domænet med dine oplysninger:
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d www.example.com
Denne kommando henter certifikatet og ændrer din NGINX-konfiguration for at håndhæve HTTPS ved at implementere 301-omdirigeringer, tilføje Strict-Transport-Security-headeren og aktivere OCSP-hæftning, hvilket forbedrer din servers sikkerhedsposition.
Automatisering af SSL-certifikatfornyelse
Certifikater udstedt af Let's Encrypt er gyldige i 90 dage. For at undgå manuelle fornyelser skal du automatisere processen med et cron-job. Test først fornyelsesprocessen:
sudo certbot renew --dry-run
Hvis tørløbet er vellykket, skal du fortsætte med at redigere din crontab:
sudo crontab -e
Hvis Cron ikke er installeret på dit Fedora-system, installer det med:
sudo dnf install cronie
Planlæg en daglig kontrol for certifikatfornyelse i cron-fanen:
00 00 */1 * * /usr/sbin/certbot-auto renew
Gem din crontab med SHIFT + :, skriv wq for at skrive og afslutte, og tryk derefter på Enter
.
Du bør se en bekræftelsesmeddelelse, der angiver den vellykkede planlægning af opgaven:
crontab: installing new crontab
Håndtering af Nginx Service
Med Nginx nu med succes opsat på din server, er det afgørende at huske på følgende ledelsesretningslinjer:
Stopper NGINX-webserveren
For at stoppe NGINX-tjenesten skal du udføre følgende kommando:
sudo systemctl stop nginx
Start af NGINX-webserveren
Start NGINX-tjenesten med denne kommando:
sudo systemctl start nginx
Genstart af NGINX-webserveren
For en fuldstændig genstart af NGINX-tjenesten skal du bruge:
sudo systemctl restart nginx
Genindlæser NGINX-webserveren
Anvend mindre ændringer uden at genstarte ved at genindlæse NGINX:
sudo systemctl reload nginx
Deaktivering af NGINX ved serveropstart
Undgå, at NGINX starter under systemopstart:
sudo systemctl disable nginx
Aktivering af NGINX ved serverstart
Indstil NGINX til at starte automatisk ved opstart, men bemærk, at det som standard er aktiveret ved installation:
sudo systemctl enable nginx
Disse kommandoer er integrerede for den rutinemæssige styring af NGINX-tjenesten, hvilket sikrer, at administratorer effektivt kan kontrollere webserverens drift i deres Fedora Linux-miljø.
Adgang til NGINX-serverlogfiler
Navigerer til logbiblioteket
For at begynde skal du skifte til NGINX-logbiblioteket:
cd /var/log/nginx/
List indholdet for at se tilgængelige logfiler:
ls
I denne mappe er access.log og error.log de primære filer, der lagrer henholdsvis indkommende serveranmodninger og fejlmeddelelser. Regelmæssig inspektion af disse logfiler er afgørende for at identificere problemer, optimere ydeevnen og opretholde serverens sundhed.
Overvågning af logs i realtid
Til live-logovervågning er "hale"-kommandoen uvurderlig:
sudo tail -f /var/log/nginx/access.log
Denne kommando udsender løbende nye logposter efter deres optagelse og tjener som et praktisk værktøj til øjeblikkelig fejlfinding.
Gennemgang af seneste logaktivitet
For at gennemgå de seneste poster skal du vise de sidste 30 linjer i adgangsloggen:
sudo tail -f /var/log/nginx/access.log -n 30
Avancerede logfiltreringsteknikker
For mere avanceret loganalyse kan grep bruges til at filtrere logfiler. For at finde alle poster relateret til en specifik IP-adresse, skal du f.eks. bruge:
grep 'IP_ADDRESS' /var/log/nginx/access.log
Erstat IP_ADDRESS med den faktiske IP-adresse, du undersøger.
For at overvåge fejllogfiler for specifikke datoer skal du kombinere grep med en datostreng:
grep '2023-11-07' /var/log/nginx/error.log
Dette filtrerer indlæg fra 7. november 2023.
For en mere sofistikeret analyse kan værktøjer som awk udtrække specifikke felter, såsom svarkoder:
awk '{print $9}' /var/log/nginx/access.log | sort | uniq -c | sort -n
Denne sekvens udskriver HTTP-statuskoderne fra adgangsloggen, tæller dem og sorterer dem for at identificere de hyppigste koder.
Konfiguration af NGINX Log Rotation
Tilpasning af logrotationsindstillinger
For at skræddersy logrotation til NGINX, rediger konfigurationsfilen i /etc/logrotate.d/:
sudo nano /etc/logrotate.d/nginx
Denne fil specificerer NGINX's logarkivering, komprimering og rotationsstyring. Den har som standard fornuftige indstillinger og tillader tilpasning, så den passer til bestemte logningspolitikker eller systemkrav.
Forstå Logrotate-konfigurationsmuligheder
Her er en oversigt over nøgledirektiver i logrotate-konfigurationen:
- Dagligt, Ugentligt, Månedligt: Indstiller logrotationsintervallet. Standarden er daglig, men den kan justeres til ugentlig eller månedlig baseret på, hvor ofte du vil arkivere logfiler.
- Roter: Angiver antallet af gamle logfiler, der skal beholdes. Standarden er 14, hvilket betyder, at efter 14 rotationer slettes den ældste fil.
- Komprimer: Aktiverer komprimering af roterede logfiler for at spare plads. Som standard er dette aktiveret.
- Delaycompress: Udsætter komprimering til næste rotationscyklus, normalt parret med komprimering.
- Missingok: Tillader logrotate at fortsætte uden fejl, hvis en logfil er fraværende.
- Opret: Indstiller tilladelser og ejerskab for nye logfiler efter rotation, hvilket sikrer sikker og korrekt adgang.
- Sharedscripts: Udfører postrotate-scriptet én gang, efter at alle logfiler er roteret, hvilket er effektivt til genindlæsning af tjenester.
Eksempel på NGINX Logrotate-konfiguration
Nedenfor er et eksempel på en konfiguration med forklaringer til hvert direktiv:
/var/log/nginx/*.log {
daily
missingok
rotate 14
compress
delaycompress
notifempty
create 0640 www-data adm
sharedscripts
prerotate
if [ -d /etc/logrotate.d/httpd-prerotate ]; then \
run-parts /etc/logrotate.d/httpd-prerotate; \
fi \
endscript
postrotate
invoke-rc.d nginx rotate >/dev/null 2>&1
endscript
}
Bedste praksis og overvejelser
- Standardindstillinger: Medmindre der er en tvingende grund, er det tilrådeligt at bruge NGINX's standardindstillinger.
- Systemkrav: Juster indstillinger baseret på systembrug, lagerkapacitet og specifikke applikationsbehov.
- Sikkerhedsovervågning: Hvis du bruger værktøjer som fail2ban, skal du sikre dig, at indstillingerne for logrotation ikke forstyrrer logovervågningen.
Ved at forstå og konfigurere disse indstillinger kan administratorer sikre effektiv, sikker styring af NGINX-logfiler i overensstemmelse med deres logføringspolitikker.
Opdatering af NGINX
Sikkerhedskopiering af NGINX-konfigurationen
Før du starter en opdatering, skal du sikre din NGINX-konfiguration:
sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
Udførelse af denne kommando dublerer nginx.conf-filen og tilføjer .bak til filnavnet. Denne sikkerhedskopi fungerer som et sikkerhedsnet, der giver dig mulighed for at gendanne dine oprindelige indstillinger, hvis opdateringsprocessen påvirker dine brugerdefinerede konfigurationer.
Arkivering af hele NGINX-kataloget
For en omfattende backup skal du arkivere hele NGINX-biblioteket:
sudo tar -czvf nginx_backup.tar.gz /etc/nginx/
Denne kommando kompilerer alle konfigurationsfiler, moduler og relaterede data i et gzippet tar-arkiv, hvilket sikrer, at du har et komplet øjebliksbillede af din nuværende NGINX-opsætning.
Udførelse af NGINX-opdateringen
For at opdatere NGINX skal du opdatere dine Fedora-lagre og anvende de seneste opdateringer:
sudo dnf upgrade --refresh
Denne kommando søger efter opdateringer og beder dig, hvis den er tilgængelig, om at fortsætte med opgraderingsprocessen, og sikrer, at NGINX kører den seneste version med alle sikkerhedsrettelser og forbedringer.
Bemærk: Gennemgå altid ændringerne, før du anvender opdateringer, især for en tjeneste så kritisk som NGINX, for at undgå uventede nedetid eller konfigurationsproblemer.
Afinstallerer NGINX
Fjern NGINX
For at fjerne NGINX fra dit system skal du udføre følgende kommando:
sudo dnf remove nginx
Denne kommando afinstallerer NGINX og fjerner alle forældreløse afhængigheder, der følger med installationen, og som nu er unødvendige.
Bemærk: Denne handling vil stoppe alle NGINX-tjenester og fjerne de tilknyttede filer. Hvis du planlægger at bruge dem senere eller migrere til en anden webserver, skal du sikre dig, at du har sikkerhedskopieret alle nødvendige konfigurationsfiler eller webstedsdata.
Konklusion
Ved at installere Nginx på dit Fedora-system, har du etableret en pålidelig og effektiv webserver, der er klar til at håndtere en række opgaver, fra at betjene statiske filer til at styre trafik til mere komplekse applikationer. Regelmæssige opdateringer via Fedoras pakkehåndteringsværktøjer hjælper med at holde din Nginx-installation sikker og kørende. Overvej at finjustere Nginx's konfiguration, så den passer til dine specifikke behov, uanset om det er at optimere ydeevnen, forbedre sikkerheden eller opsætte avancerede funktioner som belastningsbalancering. Med korrekt styring vil Nginx fortsætte med at levere robust ydeevne til dine Fedora-baserede webtjenester.