Ki jan yo enstale Nginx ak ann ankripte TLS/SSL sou Ubuntu 20.04

NGINX se yon sous louvri, lojisyèl sèvè HTTP gratis. Anplis kapasite sèvè HTTP li yo, NGINX ka fonksyone tou kòm yon sèvè prokurasyon pou imel (IMAP, POP3, ak SMTP) ak yon prokurasyon ranvèse ak balans chaj pou HTTP, TCP, ak UDP sèvè. Objektif la dèyè NGINX se te kreye sèvè entènèt ki pi rapid alantou, epi kenbe ekselans sa a se toujou yon objektif santral nan pwojè Nginx la. NGINX toujou bat Apache ak lòt serveurs nan referans ki mezire pèfòmans sèvè entènèt epi kounye a se sèvè entènèt ki pi popilè itilize dapre W3Tech.

Nan leson patikilye sa a, ou pral aprann enstale Nginx sou Ubuntu 20.04 LTS lè l sèvi avèk depo Ubuntu default oswa PPA altènatif pa Ondřej Surý ak yon sètifika TLS/SSL gratis ki soti nan Let's Encrypt.

Kondisyon

  • OS rekòmande: Ubentu 20.04 oswa pi wo
  • Kont itilizatè: Yon kont itilizatè ki gen aksè sudo oswa rasin.

Mete ajou sistèm operasyon

Mete ajou ou Ubentu sistèm operasyon asire w ke tout pakè ki egziste deja yo Alamòd:

sudo apt update && sudo apt upgrade

Rasin oswa Sudo Aksè

Pa default, kont ki te kreye ak Ubuntu te bay estati sudo. Toujou, sipoze ou bezwen bay plis kont aksè sudo/rasin. Nan ka sa a, ou dwe swa gen aksè a modpas rasin yo sèvi ak kòmandman su a oswa vizite leson patikilye nou an sou Ki jan yo ajoute yon itilizatè nan Sudoers sou Ubuntu.


reklam


Enstale Nginx

Metòd 1. Enstale Nginx Stable soti nan Ubuntu Repository

Premye metòd la se enstale Nginx soti nan depo Ubuntu yo, ak vèsyon sa yo pwouve yo dwe estab ak an sekirite. Si ou bezwen kouri yon sèvè entènèt prensipal oswa prokurasyon ranvèse, enstale pakè depo Ubuntu yo souvan rekòmande.

Pou enstale Nginx, kouri lòd sa a.

sudo apt install nginx

Egzanp pwodiksyon:

Ki jan yo enstale Nginx ak ann ankripte TLS/SSL sou Ubuntu 20.04

Kalite "Y," Lè sa a, peze la "ENTRE KLE" kontinye ak enstalasyon an.

Apre sa, verifye vèsyon an bati epi si enstalasyon an te reyisi.

sudo nginx -v

Egzanp pwodiksyon:

nginx version: nginx/1.18.0

Metòd 2. Enstale Dènye Nginx Stable oswa Mainline soti nan Ondřej Surý PPA

Altènativman, olye pou yo enstale Nginx stable build ki soti nan depo Ubuntu 20.04 la, ou ka enstale swa Nginx Stable oswa Mainline lè l sèvi avèk PPA ki soti nan Ondřej Surý mentenatè PHP pou Debian.

Enstale youn nan PPA sa yo ak lòd sa a:

Enstale dènye Nginx (STABLE):

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

Enstale dènye Nginx (MAINLINE):

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

Kounye a ke ou te enstale a PPA epi mete ajou lis repozitwa a, enstale Nginx ak sa ki annapre yo:

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

Egzanp pwodiksyon:

Ki jan yo enstale Nginx ak ann ankripte TLS/SSL sou Ubuntu 20.04

Kalite "Y," Lè sa a, peze la "ENTRE KLE" kontinye ak enstalasyon an.

Apre sa, verifye vèsyon an bati epi si enstalasyon an te reyisi.

sudo nginx -v

Egzanp pwodiksyon (Soti nan Mainline):

nginx version: nginx/1.18.0

Koulye a tcheke pou asire ke dènye Nginx ki soti nan depo Ondřej Surý te enstale lè l sèvi avèk la lòd politik apt-cache. Remake byen, la egzanp leson patikilye enstale Nginx Mainline:

apt-cache policy nginx

Egzanp pwodiksyon pou Nginx Mainline:

Ki jan yo enstale Nginx ak ann ankripte TLS/SSL sou Ubuntu 20.04

Remake byen ke ou ka mande pou kenbe oswa ranplase ki egziste deja / elatriye / nginx /nginx.conf fichye konfigirasyon pandan enstalasyon an si ou te enstale Nginx deja. Li rekòmande pou kenbe fichye konfigirasyon ou ye kounye a pa peze (n). Yo pral fè yon kopi kèlkeswa vèsyon mentan an, epi ou ka tcheke sa a tou nan lavni.

Ou pral remake modil adisyonèl yo pral disponib nan vèsyon sa a, pi miyò sipò Brotli. Pou enstale brotli, swiv etap ki anba yo.

louvri ou nginx.conf dosye konfigirasyon:

nano /etc/nginx/nginx.conf

Koulye a, ajoute liy adisyonèl yo anvan nan la HTTP{} seksyon:

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;

Jounal brotli_comp_level ka mete ant 1 (pi ba) ak 11 (pi wo). Tipikman, pifò serveurs chita nan mitan an, men si sèvè ou a se yon mons, mete sou 11 epi kontwole nivo itilizasyon CPU yo.

Apre sa, teste pou asire w ke chanjman yo ap travay kòrèkteman anvan ou fè li viv:

sudo nginx -t

Si chanjman yo ap travay kòrèkteman, ou ta dwe wè bagay sa yo:

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

Koulye a, fè chanjman yo viv pa rekòmanse sèvè ou a:

sudo systemctl restart nginx
sudo systemctl status nginx

Egzanp pwodiksyon:

Ki jan yo enstale Nginx ak ann ankripte TLS/SSL sou Ubuntu 20.04

Konfigirasyon UFW

Pa default, UFW enstale sou Ubuntu 20.04. Si ou itilize UFW oswa ou vle yon wè pi klè sou kouri yon firewall, sèvi ak enfòmasyon ki anba a pou konfigirasyon UFW pou Nginx.

Si UFW pa enstale, re-enstale firewall la lè l sèvi avèk lòd sa a:

sudo apt install ufw -y

Apre sa, pèmèt UFW ak lòd sa a.

sudo ufw enable

Pa default, tout koneksyon fèk ap rantre yo bloke kounye a, epi yo pèmèt tout soti.

Apre sa, chèche konnen ki aplikasyon ou te enstale lè w antre sa ki annapre yo.

sudo ufw app list

Egzanp pwodiksyon (Remake yon lis vaste ap parèt nan lòt aplikasyon tou):

 Available applications:
   Nginx Full
   Nginx HTTP
   Nginx HTTPS

Apre sa, ou ka pèmèt Nginx nan HTTP (Port 80), HTTPS (Port 443), oswa Full, ki gen ladan tout opsyon.

HTTP (pò 80):

sudo ufw allow 'Nginx HTTP'

HTTP (pò 443):

sudo ufw allow 'Nginx HTTPS'

HTTP & HTTPS (konplè):

sudo ufw allow 'Nginx FULL'

Nan leson patikilye a, "Nginx (plen)" te aktive.

Egzanp pwodiksyon:

 Rules updated
 Rules updated (v6)

Konfime règ firewall yo aktif ak lòd sa a.

sudo ufw status

Ou pral wè règ yo ki nan lis nan pwodiksyon an.

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

Apre UFW konfigirasyon, tcheke pou asire w ke ou ka wè paj aterisaj Nginx nan navigatè entènèt ou a.

http://your_server_ip

Si tout bagay ap mache byen, ou ta dwe ateri sou paj sa a:

Ki jan yo enstale Nginx ak ann ankripte TLS/SSL sou Ubuntu 20.04

reklam


Konfigure sèvè Nginx

Ou pral bezwen gen adrès IP sèvè a pare pou mete kanpe. Fason ki pi fasil pou fè sa se ak sa ki annapre yo.

Jwenn adrès IP sèvè

Ou pral bezwen gen adrès IP sèvè a pare pou mete kanpe. Fason ki pi fasil pou fè sa se ak sa ki annapre yo.

curl -4 icanhazip.com

Egzanp pwodiksyon:

XXX.XXX.XXX.XXX IP address

Si yon erè rive, plis pase chans ou bezwen enstale pake boukl la sou sistèm ou an. Kouri byen vit lòd sa a:

sudo apt install curl -y

Mete kanpe Anyè Sous Sit

Nginx blòk sèvè (menm jan ak lame vityèl nan Apache) ka ankapsile detay konfigirasyon ak òganize plis pase yon domèn nan yon sèl sèvè. Nan leson patikilye a, ou pral mete kanpe yon domèn rele example.com, men ou ta dwe ranplase sa a ak non domèn ou.

Lè ou enstale Nginx, li kreye ak yon anyè www pre-enstale. Yo jwenn kote a nan / var / www / html /.

Premyèman, kreye anyè a, pou example.com, jan sa a, lè l sèvi avèk "-p" drapo a pou fè nenpòt ki anyè paran ki nesesè:

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

Dezyèmman, w ap bezwen bay pwopriyetè anyè a.

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

Twazyèmman, bay otorizasyon anyè a, kidonk pwopriyetè a li, ekri ak egzekite fichye yo pandan li bay gwoup yo ak lòt moun otorizasyon sèlman pou li ak egzekite. Ou ka antre lòd sa a:

sudo chmod -R 755 /var/www/your_domain

Mete kanpe paj HTML tès la

Katriyèmman, kreye yon paj tès ke ou pral itilize pou konfime sèvè Nginx ou a fonksyone.

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

Anndan editè nano ak nouvo dosye ou te kreye. Antre sa ki annapre yo.

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

Sove dosye a CTRL+O, Lè sa a, sòti Ctrl + X.

Kreye blòk sèvè Nginx

Koulye a, ou pral kreye blòk sèvè pou sit entènèt ou an. Nou pral kreye yon nouvo blòk sèvè jan sa a.

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

Ou ka kole kòd egzanp sa a nan blòk la. Sa a se jis yon HTTP-sèlman egzanp pou tès debaz yo.

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

Egzanp la montre sèvè w la ap koute de non sèvè, "domèn_ou" sou pò 80.

Ou pral bezwen chanje anyè rasin nan non/kote anyè rasin ou kreye a.

Pèmèt blòk sèvè Nginx

Pou pèmèt blòk sèvè Nginx, ou dwe konekte fichye konfigirasyon yo soti nan sit ki disponib ak sit ki pèmèt nan anyè Nginx ou a. Sa a ka fè ak lòd ln -s jan sa a.

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

Konfigirasyon final & kouri tès la

Nan etap final la, w ap bezwen louvri default ou a nginx.conf dosye-a.

sudo nano /etc/nginx/nginx.conf

Epi dekomantè liy sa a.

server_names_hash_bucket_size 64;

Gwosè bokit hash non sèvè a chanje kòm pafwa pwoblèm rive nan ajoute sèvè adisyonèl.

Apre sa, teste Nginx ou a asire w ke li ap travay anvan byen rekòmanse.

sudo nginx -t

Pwodiksyon an ta dwe si pa gen okenn erè nan sentaks la:

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

Si ou gen pwodiksyon ok sa a, rekòmanse sèvè Nginx pou chanjman yo fèt.

sudo systemctl restart nginx

Koulye a, louvri ou Navigatè Entènèt epi tape non domèn sèvè a. Ou ta dwe wè blòk sèvè ou a ap viv.

Ki jan yo enstale Nginx ak ann ankripte TLS/SSL sou Ubuntu 20.04

Sekirize Nginx ak ann ankripte Sètifika SSL gratis

Idealman, ou ta vle kouri Nginx ou sou HTTPS lè l sèvi avèk yon sètifika SSL. Pi bon fason pou fè sa se sèvi ak Ann ankripte, yon otorite sètifika gratis, otomatik epi ouvè dirije pa la Gwoup rechèch sekirite entènèt san bi likratif (ISRG).

Premyèman, enstale pake certbot jan sa a:

sudo apt install python3-certbot-nginx -y

Yon fwa enstale, kouri lòd sa a pou kòmanse kreyasyon sètifika ou a:

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

Sa a se konfigirasyon ideyal la ki gen ladan fòs HTTPS 301 redireksyon, Strict-Transport-Security header, ak OCSP Stapling. Jis asire w ke ou ajiste imel la ak non domèn nan kondisyon ou yo.

Koulye a, URL ou a pral HTTPS://www.example.com olye pou yo HTTP://www.example.com.

Remake byen, si ou itilize ansyen an URL HTTP, li pral otomatikman redireksyon nan T.


reklam


Ki jan yo jwenn aksè nan mòso bwa sèvè Nginx

Anyè Nginx Logs

Pa default, tout mòso bwa aksè / erè NGINX, sof si ou te chanje yo, yo sitiye nan anyè boutèy la, ki kòmandman sa a ka wè.

Premyèman, ale nan anyè mòso bwa yo ak lis fichye yo:

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

Ou ta dwe jwenn aksè ak dosye erè sa yo:

Log Aksè:

/var/log/nginx/access.log

Log Erè:

/var/log/nginx/error.log

Pou wè mòso bwa an tan reyèl nan tèminal ou a lè l sèvi avèk kòmandman sudo tail -f /location/of/log chemen an.

Egzanp:

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

Yon lòt opsyon se enprime dènye X kantite liy yo. Pa egzanp, X ranplase ak 30 pou enprime 30 liy lè w ajoute a -n 30 drapo.

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

Sa yo se jis kèk egzanp lekti mòso bwa.

Ki jan yo konfigirasyon Nginx Log Thorne

Nginx otomatikman enstale wotasyon boutèy demi lit ak konfigirasyon li nan default ki se vire chak jou. Ou ka chanje paramèt sa yo lè w jwenn aksè nan fichye a jan yo montre anba a.

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

Apre sa, ou pral wè menm estrikti dosye a si se pa menm jan an. Ou ka modifye sa ki isit la. Sitou ou ka chanje konbyen mòso bwa yo kenbe oswa ale soti nan chak jou a chak semèn. Sa a ta dwe rete sou default sof si ou gen bezwen espesifik log pou lojisyèl tankou siveyans fail2ban oswa menm jan an.

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

Paramèt prensipal yo ou pral pwobableman vle chanje se sa ki annapre yo:

  • Chak jou - Sa a ka chanje an chak semèn, chak mwa. Sa a ta dwe kenbe chak jou, oswa sinon ale nan dosye a boutèy demi lit ap difisil.
  • Vire 14 - Sa a se konbyen mòso bwa yo kenbe epi retire, kidonk nan max gen sèlman 14 mòso bwa, si ou sèlman vle kenbe 7 jou vo nan mòso bwa chanje sa a nan 7.

Li rekòmande pa manyen okenn lòt paramèt sof si w konnen sa w ap fè.

Ki jan yo mete ajou Nginx

Nginx pral mete ajou pa default lè yon nouvo vèsyon frape depo yo. Anvan amelyore, li toujou konseye pou fè bak anyè Nginx ou oswa, omwen, nginx.conf dosye. Ou ka fè swa ak lòd sa a.

Back up nginx.conf (Trè Rekòmande):

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

Fè bak tout katab Nginx ou a si ou prefere:

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

Apre sa, kouri lòd aktyalizasyon estanda a.

sudo apt update

Si yon ajou disponib, kouri ajou a.

sudo apt upgrade 

Ou ka mande sa pandan yon ajou oswa enstalasyon, men manyèlman fè sa davans trè esansyèl. Pou konfigirasyon gwo Nginx nan plizyè sit, fè bak nan yon bagay tankou Github oswa Gitlab ta menm pi benefik.


reklam


Kòmantè ak konklizyon

Nan leson patikilye a, ou te aprann enstale ak mete kanpe yon konfigirasyon debaz Nginx sou domèn ou a sou Ubuntu 20.04 LTS epi kreye yon sètifika SSL gratis lè l sèvi avèk Let's Encrypt. An jeneral, Nginx se lojisyèl aplikasyon entènèt ki pi itilize ak popilè kounye a, ak chak mwa ak ane depase pran plis pati nan mache nan Apache.

Gen kèk nouvo konkiran yo kòmanse parèt, tankou Openlitespeed men bay lòt aplikasyon entènèt sa yo, pou kounye a, konsantre sou bagay espesifik tankou WordPress. Nginx pral aplikasyon pou entènèt pou kèk tan.

Ban-m pran abònman
Notifye nan
0 kòmantè
Aliye komantè
Wè tout kòmantè
0
Ta renmen panse ou, tanpri fè kòmantè.x