Sådan installeres Nginx på Fedora 40 eller 39

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.

Joshua James
Følg mig
Seneste indlæg af Joshua James (se alt)

Skriv en kommentar