Hur man installerar Nginx på Fedora 35

nginx är en gratis HTTP-serverprogramvara med öppen källkod. Utöver sina HTTP-serverfunktioner kan NGINX även fungera som en proxyserver för e-post (IMAP, POP3 och SMTP) och en omvänd proxy och lastbalanserare för HTTP-, TCP- och UDP-servrar.

Målet bakom NGINX var att skapa den snabbaste webbservern som finns, och att upprätthålla den excellens är fortfarande ett centralt mål för Nginx-projektet. NGINX slår konsekvent Apache och andra servrar i benchmarks som mäter webbserverns prestanda och är nu den mest populära webbservern enligt W3Tech.

I handledningen lär du dig hur du gör installera och konfigurera Nginx på Fedora 35 med ett gratis TLS/SSL-certifikat från Let's Encrypt.

Förutsättningar

  • Rekommenderat OS: FedoraLinux 35
  • Användarkonto: Ett användarkonto med sudo- eller root-åtkomst.

Uppdatera operativsystem

Uppdatera din fedora operativsystem för att se till att alla befintliga paket är uppdaterade:

sudo dnf upgrade --refresh -y

Handledningen kommer att använda sudo kommando och förutsatt att du har sudo-status.

Så här verifierar du sudo-status på ditt konto:

sudo whoami

Exempel på utdata som visar sudo-status:

[joshua@fedora ~]$ sudo whoami
root

För att konfigurera ett befintligt eller nytt sudo-konto, besök vår handledning på Lägga till en användare till Sudoers på Fedora.

Att använda root-konto, använd följande kommando med root-lösenordet för att logga in.

su

Installera Nginx Stable eller Mainline

Att installera Nginx är väldigt enkelt på Fedora-distributioner med tanke på de sexmånadersutgåvorna, och dess ständiga uppdatering av paket under dess tid innebär att Nginx, för det mesta, alltid är uppdaterad.

Med tanke på att Fedora är van vid att ha de mest uppdaterade paketen, aktivera först mainline-förvaret, som Nginx rekommenderar att du använder.

sudo dnf module enable nginx:mainline

Exempel utmatning:

Hur man installerar Nginx på Fedora 35

Skriv Y, tryck sedan på ENTER-TANGENT för att fortsätta med installationen.

Öppna sedan din terminal och kör följande kommando för att påbörja installationsprocessen.

sudo dnf install nginx

Exempel utmatning:

Hur man installerar Nginx på Fedora 35

Skriv Y, tryck sedan på ENTER-TANGENT för att fortsätta med installationen.

När det är installerat, bekräfta installationen genom att kontrollera Nginx-versionen.

nginx -v

Exempel på utdata (med huvudlinjeexempel):

nginx version: nginx/1.21.3

Som standard är Nginx-tjänsten inte aktiverad eller aktiv när den väl har installerats. För att aktivera Nginx, använd följande kommando.

sudo systemctl enable nginx --now

Kontrollera nu tjänstens status för att bekräfta att Nginx körs utan några fel.

systemctl status nginx

Exempel utmatning:

Hur man installerar Nginx på Fedora 35

Som ovan ska statusen vara aktiv (kör). Vid det här laget har du installerat Nginx-applikationen.

Konfigurera brandväggsregler

Som standard lägger installationen inte automatiskt till brandväggsregler till standarden port 80 eller 443 port när du installerar Nginx. Innan du fortsätter bör du ställa in följande regler, detta beror på vilka portar du kommer att använda, men alla alternativ är listade.

Öppna port 80 eller HTTP:

sudo firewall-cmd --permanent --zone=public --add-service=http

Öppna port 443 eller HTTPS:

sudo firewall-cmd --permanent --zone=public --add-service=https

Ladda om brandväggen för att göra ändringar i kraft

sudo firewall-cmd --reload

Konfigurera Nginx

Du måste ha serverns IP-adress redo för installation. Det enklaste sättet att göra detta är med följande.

Hitta serverns IP-adress

Du måste ha serverns IP-adress förberedd för installation. Det enklaste sättet att göra detta är med följande.

curl -4 icanhazip.com

Exempel utmatning:

XXX.XXX.XXX.XXX IP address

Om kommandona inte fungerar har du inte curl-paketet installerat mer än troligt. Kör följande kommando:

sudo dnf install curl -y

När du har din servers IP-adress öppnar du din favoritwebbläsare och kontrollerar att standardmålsidan fungerar.

http://your_server_ip

Du bör få upp följande sida i din webbläsare.

Exempelvis:

Hur man installerar Nginx på Fedora 35

Konfigurera webbplatsens källkatalog

I handledningen kommer du att ställa in en domän som heter example.com, men du borde ersätt detta med ditt domännamn. Handledningen skapar webbkatalogerna och konfigurerar platsfilerna i den överordnade katalogen / Var / www /.

Skapa först katalogen för example.com, enligt följande, med hjälp av "-p" flagga för att skapa nödvändiga överordnade kataloger:

sudo mkdir -p /var/www/your_domain/html

För det andra måste du tilldela ägaren till katalogen.

sudo chown -R $USER:$USER /var/www/your_domain/html

För det tredje, tilldela katalogens behörigheter, så att ägaren läser, skriver och kör filerna samtidigt som de endast beviljar läs- och körrättigheter till grupper och andra. Du kan mata in följande kommando:

sudo chmod -R 755 /var/www/your_domain

Alternativt kan du använda / Usr / share / nginx / html katalog istället, men den / Var / www katalogmetoden rekommenderas för nya användare.

Konfigurera Test HTML-sida

För det fjärde, skapa en testsida som du kommer att använda för att bekräfta att din Nginx-server fungerar.

nano /var/www/your_domain/html/index.html

Inuti nanoredigeraren och den nya filen har du skapat. Skriv följande.

<html>
 <head>
  <title>Welcome to your_domain!</title>
 </head>
 <body>
   <h1>Success!  The your_domain server block is working!</h1>
 </body>
</html>

Spara filen (CTRL+O), avsluta sedan (CTRL+X).

Skapa Nginx-serverblock

Som standard hanteras Nginx-serverblocket, liknande Apaches virtuella värdar, i /etc/nginx/conf.d katalog. Nginx-installationen varierar dock från olika versioner och distributioner som använder antingen conf.d or sites-available/sites-enabled som standard. För handledningen kommer webbplatsens kataloger att användas för att hålla en standard.

Gör först de kataloger som behövs för sites-available och webbplatsaktiverade.

sudo mkdir /etc/nginx/sites-available
sudo mkdir /etc/nginx/sites-enabled

Öppna sedan din nginx.conf-fil och ta bort eller kommentera "inkludera /etc/nginx/default.d/*.conf;".

sudo nano /etc/nginx/nginx.conf

Lägg sedan till inkludera direkt under det "/etc/nginx/sites-enabled/*.conf;".

Endast exempel:

# For more information on configuration, see:
#   * Official English Documentation: http://nginx.org/en/docs/
#   * Official Russian Documentation: http://nginx.org/ru/docs/

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;
}

Som ovan, a "#" kommentar har lagts till inkludera konf.d linje och inkluderar webbplatsaktiverade lades till.

Spara filen (CTRL+O) och gå ut (CTRL+X).

Skapa sedan din serverblockkonfigurationsfil. Namnet your_domain.conf kommer att användas för handledningen, men detta kan heta vad som helst du föredrar.

sudo nano /etc/nginx/sites-available/your_domain.conf

Du kan klistra in följande exempelkod i blocket. Detta är bara en Exempel på endast HTTP för grundläggande testning.

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;
 }
}

Exemplet visar att din server lyssnar efter två servernamn, "din_domän" på hamn 80.

Du måste ändra rotkatalogen till namnet/platsen för den rotkatalog du skapar.

Aktiverat Nginx Server Block

Du måste länka konfigurationsfilerna från webbplatser som är tillgängliga till webbplatser som är aktiverade i din Nginx-katalog för att aktivera Nginx-serverblock. Detta kan göras med kommandot ln -s enligt följande.

sudo ln -s /etc/nginx/sites-available/your_domain.conf /etc/nginx/sites-enabled/

Slutlig konfiguration och testkörning

I det sista skedet måste du öppna din standard nginx.conf fil.

sudo nano /etc/nginx/nginx.conf

Och avkommentera följande rad.

server_names_hash_bucket_size 64;

Servernamnets hash-bucket-storlek ändras eftersom det ibland uppstår problem om man lägger till ytterligare servrar.

Testa sedan din Nginx för att se till att den fungerar innan du startar om ordentligt.

sudo nginx -t

Utdata ska vara om inga fel i syntaxen:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Om du har följande ok utdata, starta om Nginx-servern för att ändringarna ska ske.

sudo systemctl restart nginx

Öppna nu din webbläsare och skriv in serverns domännamn. Du bör se att ditt serverblock är live.

Hur man installerar Nginx på Fedora 35

Säker Nginx med Let's Encrypt SSL Free Certificate

Helst skulle du vilja köra din Nginx på HTTPS med ett SSL-certifikat. Det bästa sättet att göra detta är att använda Låt oss kryptera, en gratis, automatiserad och öppen certifikatutfärdare som drivs av ideell Internet Security Research Group (ISRG).

installera certbot-paket enligt följande:

sudo dnf install python3-certbot-nginx -y

När det är installerat, kör följande kommando för att starta skapandet av ditt certifikat:

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d www.example.com

Denna idealiska installation inkluderar forcerad HTTPS 301-omdirigeringar, en Strict-Transport-Security-huvud och OCSP-häftning. Se bara till att anpassa e-post och domännamn efter dina krav.

Nu blir din URL HTTPS://www.example.com istället för HTTP://www.example.com.

Om du använder den gamla HTTP URLkommer den automatiskt att omdirigera till HTTPS.

Alternativt kan du ställa in ett cron-jobb för att förnya certifikaten automatiskt. Certbot erbjuder ett skript som gör detta automatiskt, och du kan först testa för att säkerställa att allt fungerar genom att utföra en torrkörning.

sudo certbot renew --dry-run

Om allt fungerar, öppna ditt crontab-fönster med följande terminalkommando.

sudo crontab -e

Som standard kommer de flesta Fedora-system inte med Cron installerat. För att installera det, använd följande kommando.

sudo dnf install cronie -y

Öppna crontab med följande kommando.

sudo crontab -e

Ange sedan när den ska förnyas automatiskt. Detta bör kontrolleras minst dagligen, och om certifikatet behöver förnyas kommer skriptet inte att uppdatera certifikatet. Om du behöver hjälp med att hitta en bra tid att ställa in, använd crontab.guru gratis verktyg.

00 00 */1 * * /usr/sbin/certbot-auto renew

Spara nu filen genom att trycka på (FLYTTA) och (:) sedan skriva (wa), som sparar filen, avsluta sedan med samma metod med (qa).

Du bör se följande utdata i terminalen för att se om det gick bra att lägga till den nya uppgiften.

crontab: installing new crontab

Hantera Nginx Service

Nu när du har kört Nginx på din server framgångsrikt, är några hanteringsgrundtoner som följer.

För att stoppa Nginx webbserver:

sudo systemctl stop nginx

För att starta Nginx webbserver:

sudo systemctl start nginx

Så här startar du om Nginx-webbservern:

sudo systemctl restart nginx

För att ladda om Nginx-webbservern (För fler mindre ändringar som inte kräver omstart):

sudo systemctl reload nginx

Så här inaktiverar du Nginx vid serverstart:

sudo systemctl disable nginx

För att starta Nginx vid serverstart (Automatiskt aktiverad vid installation):

sudo systemctl enable nginx

Hur man får åtkomst till Nginx-serverloggar

Nginx Logs Directory

Som standard finns alla NGINX-åtkomst-/felloggar, om du inte har ändrat dem, i loggkatalogen, som följande kommando kan se.

Först, navigera till loggkatalogen och lista filer:

cd /var/log/nginx && ls -l

Du bör hitta följande åtkomst- och felfiler:

Åtkomstlogg:

/var/log/nginx/access.log

Felloggen:

/var/log/nginx/error.log

För att se loggar i realtid i din terminal med kommandot sudo tail -f /location/of/log path.

Exempelvis:

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

Ett annat alternativ är att skriva ut det sista X antalet rader. Till exempel ersätts X med 30 för att skriva ut 30 rader genom att lägga till -n 30 flagga.

sudo tail -f /var/log/nginx/access.log -n 30

Det här är bara några exempel på att läsa loggar, och grep kan också vara till hjälp.

Hur man konfigurerar Nginx Log Rotate

Nginx installerar automatiskt loggrotation och konfigurerar den till standard vilket är att rotera dagligen. Du kan ändra dessa inställningar genom att öppna filen som visas nedan.

sudo nano /etc/logrotate.d/nginx

Därefter kommer du att se samma om inte liknande filstruktur. Du kan ändra innehållet här. Oftast kan du ändra hur många loggar som ska sparas eller gå från dagligen till veckovis. Detta bör lämnas på standard om du inte har specifika loggkrav för programvara som fail2ban-övervakning eller liknande.

/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
}

De huvudsakliga inställningarna du förmodligen vill ändra är följande:

  • Dagligen – Detta kan ändras till Weekly, Monthly. Detta bör hållas dagligen, annars blir det svårt att gå igenom loggfilen.
  • Rotera 14 – Det här är hur många loggar som ska sparas och tas bort, så vid max finns det bara 14 loggar, om du bara vill behålla 7 dagars loggar ändra detta till 7.

Det rekommenderas att inte röra några andra inställningar om du inte vet vad du gör.

Hur man uppdaterar Nginx

Nginx kommer att uppdateras som standard när en ny version träffar arkiven. Innan du uppgraderar, rekommenderas det alltid att säkerhetskopiera din Nginx-katalog eller åtminstone nginx.conf fil. Du kan göra båda med följande kommando.

Säkerhetskopiera nginx.conf (rekommenderas starkt):

sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx-backup.conf

Säkerhetskopiera hela din Nginx-mapp om du föredrar:

sudo cp /etc/nginx/ /etc/nginx-bkup

Kör sedan standarduppdateringskommandot.

sudo dnf upgrade --refresh

Om en uppgradering är tillgänglig, kör uppgraderingen.

Du kan bli tillfrågad om detta under en uppgradering eller installation, men att manuellt göra detta i förväg är ganska viktigt. För stora Nginx-konfigurationer av flera webbplatser skulle säkerhetskopiering till något som Github eller Gitlab vara ännu mer fördelaktigt.

Hur man tar bort (avinstallera) Nginx

För att ta bort Nginx om du inte längre använder det, kan detta göras med följande kommando:

sudo dnf autoremove nginx

Detta kommando tar också bort alla oanvända beroenden som följde med installationen.

För att återställa nginx-modulen från huvudlinjen till standard, använd följande kommando.

sudo dnf modules reset nginx

Kommentarer och slutsats

I handledningen har du lärt dig att installera och ställa in grundläggande Nginx-konfiguration på din domän på Fedora 35 Workstation eller Server, tillsammans med att skapa ett gratis SSL-certifikat med hjälp av Let's Encrypt. Sammantaget är Nginx den mest använda och populära webbapplikationsmjukvaran nu, med varje månad och år som överträffar att ta fler marknadsandelar från Apache.

Några nya utmanare börjar dyka upp, som Openlitespeed, men med tanke på dessa andra webbapplikationer fokuserar du för närvarande på specifika saker som WordPress. Nginx kommer att vara den populära webbapplikationen under en tid.


Inte vad du letade efter? Försök att söka efter ytterligare tutorials.

Lämna en kommentar