Ki jan yo enstale Nginx ak ann ankripte TLS/SSL sou Linux Mint 20

NGINX se lojisyèl sous louvri pou sèvis entènèt, proxy inverse, kachèt, balans chaj, difizyon medya, ak plis ankò. Linux Mint se yon distribisyon Linux ki chita sou kominote a ki baze sou Ubuntu (ki baze sou Debian), ki ofri ak plizyè aplikasyon gratis ak sous louvri. De sa yo ka òganize ak opere byen ansanm, bay tou de yo ekselan nan domèn respektif yo.

Ki sa ki Linux Mint?

Linux Mint gen pou objaktif pou pwodwi yon sistèm opere modèn, elegant ak konfòtab ki pwisan ak fasil pou itilize. Linux Mint se youn nan distribisyon Linux Desktop ki pi popilè epi li itilize pa plizyè milyon moun.

Kèk nan rezon ki fè siksè Linux Mint yo se:

  • Li travay soti nan bwat la, ak sipò miltimedya konplè epi li trè fasil pou itilize.
  • Li tou de gratis ak sous louvri.
  • Li nan kominote-kondwi. Itilizatè yo ankouraje yo voye fidbak nan pwojè a pou lide yo ka itilize pou amelyore Linux Mint.
  • Ki baze sou Debian ak Ubuntu, li bay apeprè 30,000 pakè ak youn nan pi bon administratè lojisyèl yo.
  • Li an sekirite ak serye. Mèsi a yon apwòch konsèvatif nan mizajou lojisyèl, yon Manadjè Mizajou inik, ak solidite achitekti Linux li yo, Linux Mint mande anpil antretyen (pa gen okenn regression, pa gen antivirus, pa gen okenn anti-espyon ... elatriye).

reklam


ki sa ki Nginx?

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 pwojè a. NGINX toujou bat Apache ak lòt sèvè nan referans ki mezire pèfòmans sèvè entènèt. Sepandan, depi lage orijinal la nan NGINX, sit entènèt yo te elaji soti nan paj HTML senp nan kontni dinamik, divès aspè. NGINX te grandi ansanm ak li e kounye a, sipòte tout eleman yo nan entènèt modèn, ki gen ladan WebSocket, HTTP/2, gRPC, ak difizyon nan plizyè fòma videyo (HDS, HLS, RTMP, ak lòt moun).

Avantaj Nginx:

  • Enstalasyon ak konfigirasyon yo senp epi fasil. …
  • Pi rapid ak pi bon an pou sèvi fichye estatik. …
  • Kontni dinamik transfòme nan kontni estatik. …
  • Lè yo konpare ak Apache, 4 fwa plis koneksyon konkouran yo okipe. …
  • Konpatibilite ak aplikasyon entènèt yo itilize souvan. …
  • Sipò pou balanse chaj.

Nan gid sa a, yo pral montre w kouman enstale Nginx sou Linux Mint 20.

Kondisyon

Mizajou sistèm operasyon

Mete ajou ou Linux Mint sistèm operasyon pou asire tout pakè ki egziste deja yo ajou:

sudo apt update && sudo apt upgrade -y

Tutorial la pral sèvi ak la sudo kòmand ak sipoze ou gen estati sudo. Pou verifye estati sudo sou kont ou:

sudo whoami

Egzanp pwodiksyon ki montre estati sudo:

[joshua@linuxmint ~]$ sudo whoami
root

Si ou pa mete yon kont itilizatè sudo epi ou ta renmen, vizite leson patikilye nou an sou Ki jan yo ajoute yon itilizatè nan Sudoers sou Linux Mint.

Pou itilize kont rasin, sèvi ak lòd sa a ak modpas rasin lan pou konekte.

su

reklam


Enstale Nginx

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

Premye metòd la se enstale Nginx soti nan depo Linux Mint 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 yon prokurasyon ranvèse, yo souvan rekòmande enstale pakè depo yo.

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 Linux Mint 20

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ý, antretyen 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 Linux Mint 20

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.21.3

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 Linux Mint 20

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 Linux Mint 20

Konfigirasyon UFW

Pa default, UFW enstale sou Linux Mint. 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 Linux Mint 20

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, ou bezwen enstale pake boukl la sou sistèm ou a plis pase chans. Byen vit kouri 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 thanks to Linuxcapable.com!</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

Ou dwe konekte fichye konfigirasyon yo soti nan sit ki disponib ak sit ki pèmèt nan anyè Nginx ou a pou pèmèt blòk sèvè Nginx. 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 Linux Mint 20

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.

Opsyonèlman, ou ka mete yon travay cron pou renouvle sètifika yo otomatikman. Certbot ofri yon script ki fè sa otomatikman, epi ou ka premye teste asire w ke tout bagay ap travay pa fè yon kouri sèk.

sudo certbot renew --dry-run

Si tout bagay ap travay, ouvri fenèt crontab ou a lè w sèvi ak lòd tèminal sa a.

sudo crontab -e

Apre sa, tanpri presize tan an lè li ta dwe renouvle otomatikman. Sa a ta dwe tcheke chak jou nan yon minimòm, epi si sètifika a bezwen renouvle, script la pa pral mete ajou sètifika a. Si ou bezwen èd pou jwenn yon bon moman pou mete, sèvi ak la crontab.guru zouti gratis.

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

Save (CTRL+O) Lè sa a, sòti (CTRL+X), epi cronjob la pral otomatikman aktive.


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 sou Linux Mint 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.

Leave a Comment