Hvernig á að setja upp Nginx með Let's Encrypt TLS/SSL á Ubuntu 20.04

nginx er opinn hugbúnaður, ókeypis HTTP netþjónn. Til viðbótar við getu sína á HTTP netþjóninum getur NGINX einnig virkað sem umboðsþjónn fyrir tölvupóst (IMAP, POP3 og SMTP) og öfugt umboð og álagsjafnvægi fyrir HTTP, TCP og UDP netþjóna. Markmiðið á bak við NGINX var að búa til hraðskreiðasta vefþjóninn sem til er og viðhalda því ágæti er enn aðalmarkmið Nginx verkefnisins. NGINX slær stöðugt út Apache og aðra netþjóna í viðmiðum sem mæla árangur vefþjónsins og er nú vinsælasti notaði vefþjónninn samkvæmt W3Tech.

Í eftirfarandi kennslu muntu læra að setja upp Nginx á Ubuntu 20.04 LTS með því að nota sjálfgefna Ubuntu geymsluna eða aðra PPA eftir Ondřej Surý með ókeypis TLS/SSL vottorði frá Let's Encrypt.

Forsendur

  • Mælt með stýrikerfi: ubuntu 20.04 eða hærra
  • Notendareikningur: Notendareikningur með sudo eða rót aðgang.

Uppfærir stýrikerfi

Uppfærðu þína ubuntu stýrikerfi til að tryggja að allir núverandi pakkar séu það upp til dagsetning:

sudo apt update && sudo apt upgrade

Root eða Sudo Access

Sjálfgefið var að reikningurinn sem var búinn til með Ubuntu gaf sudo stöðu. Segjum samt sem áður að þú þurfir að veita viðbótarreikningum sudo/root aðgang. Í því tilviki verður þú annað hvort að hafa aðgang að rót lykilorð til að nota su skipunin eða farðu á námskeiðið okkar á Hvernig á að bæta notanda við Sudoers á Ubuntu.


Fáðu


Setjið Nginx

Aðferð 1. Settu upp Nginx Stable frá Ubuntu geymslunni

Fyrsta aðferðin er að setja upp Nginx frá sjálfgefnum geymslum Ubuntu og þessar útgáfur hafa sýnt sig að vera stöðugar og öruggar. Ef þú þarft að keyra aðal vefþjón eða öfugt umboð er oft mælt með því að setja upp Ubuntu geymslupakkana.

Til að setja upp Nginx skaltu keyra eftirfarandi skipun.

sudo apt install nginx

Dæmi úttak:

Hvernig á að setja upp Nginx með Let's Encrypt TLS/SSL á Ubuntu 20.04

Gerð "J," ýttu síðan á „SLAÐA LYKILL“ til að halda áfram með uppsetninguna.

Næst skaltu staðfesta útgáfuna og hvort uppsetningin hafi heppnast.

sudo nginx -v

Dæmi úttak:

nginx version: nginx/1.18.0

Aðferð 2. Settu upp nýjustu Nginx Stable eða Mainline frá Ondřej Surý PPA

Að öðrum kosti, í stað þess að setja upp sjálfgefna Nginx stöðuga byggingu úr geymslu Ubuntu 20.04, geturðu sett upp annað hvort Nginx Stable eða Mainline með því að nota PPA frá Ondřej Surý PHP viðhaldsaðila fyrir Debian.

Settu upp einn af eftirfarandi PPA með eftirfarandi skipun:

Settu upp nýjasta Nginx (STABLE):

sudo add-apt-repository ppa:ondrej/nginx-stable -y && sudo apt update

Settu upp nýjasta Nginx (MAINLINE):

sudo add-apt-repository ppa:ondrej/nginx-mainline -y && sudo apt update

Nú þegar þú hefur sett upp PPA og uppfærði geymslulistann, settu upp Nginx með eftirfarandi:

sudo apt install nginx-core nginx-common nginx nginx-full

Dæmi úttak:

Hvernig á að setja upp Nginx með Let's Encrypt TLS/SSL á Ubuntu 20.04

Gerð "J," ýttu síðan á „SLAÐA LYKILL“ til að halda áfram með uppsetninguna.

Næst skaltu staðfesta útgáfuna og hvort uppsetningin hafi heppnast.

sudo nginx -v

Dæmi úttak (frá aðallínu):

nginx version: nginx/1.18.0

Athugaðu nú hvort nýjasta Nginx frá Ondřej Surý geymslunni hafi verið sett upp með því að nota apt-cache stefnu skipun. Athugið að kennsludæmi uppsett Nginx Mainline:

apt-cache policy nginx

Dæmi framleiðsla fyrir Nginx aðallína:

Hvernig á að setja upp Nginx með Let's Encrypt TLS/SSL á Ubuntu 20.04

Athugaðu að þú gætir verið beðinn um að halda eða skipta út núverandi / etc / nginx /nginx.conf stillingarskrá meðan á uppsetningunni stóð ef þú hafðir Nginx uppsett áður. Mælt er með því að halda núverandi stillingarskrá með því að ýta á (n). Afrit verður gert óháð útgáfu viðhaldsaðila og þú getur líka athugað þetta í framtíðinni.

Þú munt taka eftir að fleiri einingar verða fáanlegar í þessari útgáfu, einkum brotli stuðningur. Til að setja upp brotli, fylgdu skrefunum hér að neðan.

Opnaðu nginx.conf stillingarskrá:

nano /etc/nginx/nginx.conf

Bættu nú við viðbótarlínunum áður í HTTP{} kafla:

brotli on;
brotli_comp_level 6;
brotli_static on;
brotli_types application/atom+xml application/javascript application/json application/rss+xml
   application/vnd.ms-fontobject application/x-font-opentype application/x-font-truetype
   application/x-font-ttf application/x-javascript application/xhtml+xml application/xml
   font/eot font/opentype font/otf font/truetype image/svg+xml image/vnd.microsoft.icon
   image/x-icon image/x-win-bitmap text/css text/javascript text/plain text/xml;

The brotli_comp_level hægt að stilla á milli 1 (lægst) og 11 (hæsta). Venjulega sitja flestir netþjónar í miðjunni, en ef þjónninn þinn er skrímsli skaltu stilla á 11 og fylgjast með CPU notkun.

Næst skaltu prófa til að ganga úr skugga um að breytingarnar virki rétt áður en þær eru birtar:

sudo nginx -t

Ef breytingarnar virka rétt ættirðu að sjá eftirfarandi:

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

Gerðu nú breytingarnar í beinni með því að endurræsa netþjóninn þinn:

sudo systemctl restart nginx
sudo systemctl status nginx

Dæmi úttak:

Hvernig á að setja upp Nginx með Let's Encrypt TLS/SSL á Ubuntu 20.04

UFW stillingar

Sjálfgefið er að UFW er sett upp á Ubuntu 20.04. Ef þú notar UFW eða vilt fá skýrari sýn á að keyra eldvegg, notaðu upplýsingarnar hér að neðan til að stilla UFW fyrir Nginx.

Ef UFW er ekki uppsett skaltu setja eldvegginn aftur upp með því að nota eftirfarandi skipun:

sudo apt install ufw -y

Næst skaltu virkja UFW með eftirfarandi skipun.

sudo ufw enable

Sjálfgefið er að allar mótteknar tengingar eru nú læstar og allar sendingar eru leyfðar.

Næst skaltu finna út hvaða forrit þú hefur sett upp með því að slá inn eftirfarandi.

sudo ufw app list

Dæmi um úttak (Athugið að víðtækur listi mun einnig birtast yfir önnur forrit):

 Available applications:
   Nginx Full
   Nginx HTTP
   Nginx HTTPS

Næst geturðu virkjað Nginx í HTTP (Port 80), HTTPS (Port 443) eða Full, þar á meðal alla valkosti.

HTTP (gátt 80):

sudo ufw allow 'Nginx HTTP'

HTTP (gátt 443):

sudo ufw allow 'Nginx HTTPS'

HTTP og HTTPS (fullt):

sudo ufw allow 'Nginx FULL'

Í kennslunni, „Nginx (fullt)“ var virkjað.

Dæmi úttak:

 Rules updated
 Rules updated (v6)

Staðfestu að eldveggsreglurnar séu virkar með eftirfarandi skipun.

sudo ufw status

Þú munt sjá reglurnar sem taldar eru upp í úttakinu.

 Status: active
 To                         Action      From
 --                         ------      ----
 Nginx Full                 ALLOW       Anywhere                  
 Nginx Full (v6)          ALLOW       Anywhere (v6) 

Eftir að UFW hefur verið stillt skaltu ganga úr skugga um að þú getir séð Nginx áfangasíðuna í netvafranum þínum.

http://your_server_ip

Ef allt gengur vel ættirðu að lenda á eftirfarandi síðu:

Hvernig á að setja upp Nginx með Let's Encrypt TLS/SSL á Ubuntu 20.04

Fáðu


Stilla Nginx Server

Þú þarft að hafa IP tölu netþjónsins tilbúinn til uppsetningar. Auðveldasta leiðin til að gera þetta er með eftirfarandi.

Finndu IP tölu netþjóns

Þú þarft að hafa IP tölu netþjónsins tilbúinn til uppsetningar. Auðveldasta leiðin til að gera þetta er með eftirfarandi.

curl -4 icanhazip.com

Dæmi úttak:

XXX.XXX.XXX.XXX IP address

Ef villa kemur upp, er líklegra að þú þurfir að setja upp krullupakkann á vélinni þinni. Keyrðu þessa skipun fljótt:

sudo apt install curl -y

Settu upp heimildaskrá vefsvæðis

Nginx netþjónablokkir (svipað og sýndargestgjafar í Apache) geta umlukið upplýsingar um stillingar og hýst fleiri en eitt lén frá einum netþjóni. Í kennslunni muntu setja upp lén sem heitir example.com, en þú ættir skiptu þessu út fyrir lénið þitt.

Þegar þú setur upp Nginx er það búið til með fyrirfram uppsettri www skrá. Staðsetningin er að finna á / var / www / html /.

Fyrst skaltu búa til möppuna, fyrir example.com, sem hér segir, með því að nota „-p“ fánann til að búa til nauðsynlegar móðurskrár:

sudo mkdir -p /var/www/example.com/html

Í öðru lagi þarftu að úthluta eiganda möppunnar.

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

Í þriðja lagi, úthlutaðu heimildum möppunnar, þannig að eigandinn les, skrifar og keyrir skrárnar á meðan hann veitir aðeins les- og framkvæmdaheimildir til hópa og annarra. Þú getur sett inn eftirfarandi skipun:

sudo chmod -R 755 /var/www/your_domain

Settu upp Test HTML síðu

Í fjórða lagi, búðu til prófunarsíðu sem þú munt nota til að staðfesta að Nginx netþjónninn þinn sé starfhæfur.

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

Inni í nano ritlinum og ný skrá sem þú hefur búið til. Skráðu Eftirfarandi.

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

Vistaðu skrána CTRL+O, farðu síðan út CTRL + X.

Búðu til Nginx netþjónablokk

Nú muntu búa til netþjónablokkina fyrir vefsíðuna þína. Við munum búa til nýjan netþjónablokk sem hér segir.

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

Þú getur límt eftirfarandi dæmi kóða inn í blokkina. Þetta er bara an Aðeins HTTP-dæmi fyrir grunnpróf.

server {
 listen 80;
 listen [::]:80;

 root /var/www/your_domain/html;

  index index.html index.htm index.nginx-debian.html;
  server_name your_domain www.your_domain;

 location / {
  try_files $uri $uri/ =404;
 }
}

Dæmið sýnir netþjóninn þinn er að hlusta eftir tveimur netþjónsnöfnum, „yitt_lén“ á höfn 80.

Þú þarft að breyta rótarskránni í nafn/staðsetningu rótarskrárinnar sem þú býrð til.

Virkjaðu Nginx Server Block

Til að virkja Nginx netþjónablokkir verður þú að tengja stillingarskrárnar frá síðum sem eru tiltækar við síður sem eru virkjaðar í Nginx skránni þinni. Þetta er hægt að gera með ln -s skipuninni sem hér segir.

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

Lokastilling og prófun

Á lokastigi þarftu að opna sjálfgefið þitt nginx.conf skrá.

sudo nano /etc/nginx/nginx.conf

Og afskrifaðu eftirfarandi línu.

server_names_hash_bucket_size 64;

Stærð kjötkássafötu þjónsins er breytt þar sem stundum koma upp vandamál við að bæta við fleiri netþjónum.

Næst skaltu prófa Nginx til að ganga úr skugga um að það virki áður en þú endurræsir rétt.

sudo nginx -t

Úttakið ætti að vera ef engar villur í setningafræðinni:

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

Ef þú hefur eftirfarandi í lagi framleiðsla skaltu endurræsa Nginx netþjóninn til að breytingarnar eigi sér stað.

sudo systemctl restart nginx

Opnaðu núna Netvafri og sláðu inn lén netþjónsins. Þú ættir að sjá netþjónablokkina þína er í beinni.

Hvernig á að setja upp Nginx með Let's Encrypt TLS/SSL á Ubuntu 20.04

Öruggt Nginx með Let's Encrypt SSL Free Certificate

Helst myndirðu vilja keyra Nginx þinn á HTTPS með SSL vottorði. Besta leiðin til að gera þetta er að nota Við skulum dulkóða, ókeypis, sjálfvirkt og opið vottunaryfirvald rekið af Internet Security Research Group (ISRG) sem ekki er rekin í hagnaðarskyni.

Fyrst skaltu setja upp certbot pakki eins og hér segir:

sudo apt install python3-certbot-nginx -y

Þegar það hefur verið sett upp skaltu keyra eftirfarandi skipun til að hefja gerð vottorðsins þíns:

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

Þetta er tilvalin uppsetning sem inniheldur þvingaða HTTPS 301 tilvísanir, Strict-Transport-Security haus og OCSP heftingu. Gakktu úr skugga um að aðlaga tölvupóstinn og lénið að þínum þörfum.

Nú verður vefslóðin þín HTTPS://www.example.com Í stað þess að HTTP://www.example.com.

Athugið, ef þú notar gamla HTTP vefslóð, mun það sjálfkrafa vísa til HTTPS.


Fáðu


Hvernig á að fá aðgang að Nginx netþjónaskrám

Nginx Logs Directory

Sjálfgefið er að allir NGINX aðgangs-/villuskrár, nema þú hafir breytt þeim, eru staðsettir í annálaskránni, sem eftirfarandi skipun getur skoðað.

Farðu fyrst að skráarskránni og skráðu skrárnar:

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

Þú ættir að finna eftirfarandi aðgangs- og villuskrár:

Aðgangsskrá:

/var/log/nginx/access.log

Villuskrá:

/var/log/nginx/error.log

Til að skoða logs í rauntíma í flugstöðinni þinni með því að nota sudo tail -f /location/of/log path skipunina.

Dæmi:

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

Annar valkostur er að prenta síðasta X magn af línum. Til dæmis er X skipt út fyrir 30 til að prenta 30 línur með því að bæta við -n 30 fánar.

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

Þetta eru bara nokkur dæmi um lestrarskrár.

Hvernig á að stilla Nginx Log Rotate

Nginx setur sjálfkrafa upp snúning annála og stillir það sjálfgefið sem er að snúa daglega. Þú getur breytt þessum stillingum með því að opna skrána eins og sýnt er hér að neðan.

sudo nano /etc/nginx/logrotate.d/nginx

Næst muntu sjá sömu ef ekki svipaða skráaruppbyggingu. Þú getur breytt innihaldinu hér. Aðallega er hægt að breyta því hversu mörgum annálum á að halda eða fara úr daglega í vikulega. Þetta ætti að vera sjálfgefið nema þú hafir sérstakar þarfir fyrir annálaþörf fyrir hugbúnað eins og fail2ban eftirlit eða álíka.

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

Helstu stillingarnar sem þú vilt líklega breyta eru eftirfarandi:

  • Daglega - Þessu er hægt að breyta í vikulega, mánaðarlega. Þessu ætti að halda daglega, annars verður erfitt að fara í gegnum annálaskrána.
  • Snúa 14 - Þetta er hversu marga loga á að geyma og fjarlægja, svo að hámarki eru aðeins 14 logs, ef þú vilt aðeins halda 7 daga virði af logs breyttu þessu í 7.

Mælt er með því að snerta ekki neinar aðrar stillingar nema þú vitir hvað þú ert að gera.

Hvernig á að uppfæra Nginx

Nginx verður sjálfgefið uppfært þegar ný útgáfa kemur á geymslurnar. Áður en þú uppfærir er alltaf ráðlagt að taka öryggisafrit af Nginx skránni þinni eða, að minnsta kosti, nginx.conf skrá. Þú getur gert annað hvort með eftirfarandi skipun.

Taktu öryggisafrit af nginx.conf (mjög mælt með):

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

Taktu öryggisafrit af allri Nginx möppunni þinni ef þú vilt:

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

Næst skaltu keyra venjulegu uppfærsluskipunina.

sudo apt update

Ef uppfærsla er tiltæk skaltu keyra uppfærsluna.

sudo apt upgrade 

Þú gætir verið beðinn um þetta meðan á uppfærslu eða uppsetningu stendur, en það er frekar nauðsynlegt að gera þetta handvirkt fyrirfram. Fyrir stórar Nginx stillingar margra vefsvæða væri enn hagstæðara að taka öryggisafrit af einhverju eins og Github eða Gitlab.


Fáðu


Athugasemdir og niðurstaða

Í kennslunni hefurðu lært að setja upp og setja upp grunn Nginx stillingar á léninu þínu á Ubuntu 20.04 LTS og búa til ókeypis SSL vottorð með Let's Encrypt. Á heildina litið er Nginx mest notaði og vinsælasti vefforritahugbúnaðurinn núna, þar sem hver mánuður og ár fer fram úr því að taka meiri markaðshlutdeild frá Apache.

Sumir nýir keppinautar eru farnir að skjóta upp kollinum, eins og Openlitespeed, en í ljósi þessara annarra vefforrita, í augnablikinu, einbeittu þér að ákveðnum hlutum eins og WordPress. Nginx mun verða vefforritið sem þú vilt nota í nokkurn tíma.

Leyfi a Athugasemd