Otu esi etinye Nginx na Let's Encrypt TLS/SSL na Debian 11 Bullseye

NGINX bụ ihe mepere emepe, ngwa nkesa HTTP efu. Na mgbakwunye na ikike nkesa HTTP ya, NGINX nwekwara ike ịrụ ọrụ dị ka ihe nkesa proxy maka e-mail (IMAP, POP3, na SMTP) yana proxy na-atụgharị na ihe nkwụnye ụgwọ maka HTTP, TCP, na UDP sava. Ebumnuche dị n'azụ NGINX bụ ịmepụta sava weebụ kachasị ọsọ ọsọ gburugburu, na ịnọgide na-enwe ọganihu ahụ ka bụ ihe mgbaru ọsọ bụ isi nke ọrụ Nginx. NGINX na-akụ Apache na sava ndị ọzọ na benchmark na-atụ arụmọrụ sava weebụ ma ugbu a bụ sava weebụ kachasị ewu ewu dị ka W3Tech.

N'ime nkuzi na-esonụ, ị ga-amụta ka esi etinye Nginx na Debian 11 Bullseye site na iji ebe nchekwa Debian ma ọ bụ ebe nchekwa ọzọ nke Ondřej Surý nwere akwụkwọ TLS/SSL efu sitere na Let's Encrypt.

Prerequisites

  • OS akwadoro: Nnenna 11 Bullseye
  • Akaụntụ onye ọrụ: Akaụntụ onye ọrụ nwere sudo ihe ùgwù or ohere mgbọrọgwụ (su Command).

Na-emelite Sistemụ Ọrụ

Melite gi Nnenna 11 Bullseye Sistemụ arụmọrụ iji hụ na ngwugwu niile dị adị adịla ugbu a:

sudo apt update && sudo apt upgrade

Mgbọrọgwụ ma ọ bụ Sudo Access

Site na ndabara, mgbe ị mepụtara akaụntụ gị na mmalite na Debian ma e jiri ya tụnyere nkesa ndị ọzọ, ọ naghị enweta ọkwa sudoers ozugbo. Ị ga-enwerịrị ike ịnweta ya mgbọrọgwụ paswọọdụ iji iwu su ma ọ bụ gaa na nkuzi nkuzi anyị Otu esi etinye onye ọrụ na Sudoers na Debian.


Advertisement


Wụnye Nginx

Usoro 1. Wụnye Nginx Stable site na Debian Repository

Ụzọ mbụ bụ ịwụnye Nginx site na ebe nchekwa ndabere nke Debian, na nsụgharị ndị a gosipụtara na ọ kwụsiri ike na nchekwa. Ọ bụrụ na ịchọrọ ịgba ọsọ sava weebụ ma ọ bụ tụgharịa proxy, a na-atụkarị aro ịwụnye ngwugwu nchekwa Debian.

Iji wụnye Nginx, mee iwu a.

sudo apt install nginx

Ihe atụ mmepụta:

Otu esi etinye Nginx na Let's Encrypt TLS/SSL na Debian 11 Bullseye

ụdị "Y," wee pịa "Tinye igodo" ịga n'ihu na nwụnye.

Na-esote, nyochaa ụdị nrụpụta ma ọ bụrụ na nrụnye ahụ gara nke ọma.

sudo nginx -v

Ihe atụ mmepụta:

nginx version: nginx/1.18.0

Usoro 2. Wụnye kacha ọhụrụ Nginx Stable ma ọ bụ Mainline si Ondřej Surý Repository

N'aka nke ọzọ, kama ịwụnye Nginx kwụ ọtọ site na ebe nchekwa Debian 11, ị nwere ike iwunye Nginx Stable ma ọ bụ Mainline site na iji ebe nchekwa sitere na Ondřej Surý, onye na-elekọta PHP maka Debian.

Iji bubata ebe nchekwa mainline:

curl -sSL https://packages.sury.org/nginx-mainline/README.txt | sudo bash -x

Ka ibubata ebe nchekwa kwụsiri ike:

curl -sSL https://packages.sury.org/nginx/README.txt | sudo bash -x

Melite ebe nchekwa gị iji gosipụta mgbanwe ọhụrụ:

sudo apt update

Ugbu a ị wụnyela Nginx ebe nchekwa wee melite ndepụta nchekwa, tinye Nginx na ihe ndị a:

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

Ihe atụ mmepụta:

Otu esi etinye Nginx na Let's Encrypt TLS/SSL na Debian 11 Bullseye

Pịnye "Y,” wee pịa ya "Tinye igodo" ịga n'ihu na mezue nrụnye.

Ugbu a lelee iji hụ na etinyere Nginx kachasị ọhụrụ sitere na ebe nchekwa Ondřej Surý site na iji iwu amụma apt-cache. Mara, na nkuzi ihe atụ arụnyere Nginx Mainline:

apt-cache policy nginx

Ihe atụ maka Nginx Mainline:

Otu esi etinye Nginx na Let's Encrypt TLS/SSL na Debian 11 Bullseye

Rịba ama na enwere ike ịkpali gị idowe ma ọ bụ dochie gị dị / wdg / nginx /nginx.conf nhazi faịlụ n'oge echichi. A na-atụ aro ka idobe faịlụ nhazi gị ugbu a site na ịpị (n). A ga-eme otu n'agbanyeghị ụdị onye na-elekọta ya, ma ị nwekwara ike ịlele nke a n'ọdịnihu.

Ị ga-achọpụta na modul ndị ọzọ ga-adị na ụdị a, karịsịa nkwado brotli. Iji wụnye brotli, soro usoro ndị a n'okpuru.

mepee gị nginx.conf nhazi faịlụ:

nano /etc/nginx/nginx.conf

Ugbu a tinye ahịrị ndị ọzọ tupu na nke HTTP{} ngalaba:

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 enwere ike ịtọ n'etiti 1 (kasị ala) na 11 (kachasị elu). Dịka, ọtụtụ sava na-anọdụ n'etiti, mana ọ bụrụ na ihe nkesa gị bụ nnukwu anụ, tọọ 11 wee lelee ọkwa ojiji CPU.

Na-esote, nwalee ka ijide n'aka na mgbanwe ndị a na-arụ ọrụ nke ọma tupu ime ka ọ dị ndụ:

sudo nginx -t

Ọ bụrụ na mgbanwe ndị a na-arụ ọrụ nke ọma, ị ga-ahụ ihe ndị a:

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

Ugbu a mee mgbanwe ndị a dị ndụ site na ịmalitegharị ihe nkesa gị:

sudo systemctl restart nginx
systemctl status nginx

Ihe atụ mmepụta:

Otu esi etinye Nginx na Let's Encrypt TLS/SSL na Debian 11 Bullseye

Nhọrọ. Nhazi UFW

Site na ndabara, UFW adịghị etinye na Debian 11 Bullseye, n'adịghị ka nkesa ndị ọzọ dị ka Ubuntu. Agbanyeghị, ọ bụrụ na ị na-eji UFW ma ọ bụ chọọ ka anya nke ọma maka ịgba ọkụ, jiri ozi dị n'okpuru hazie UFW maka Nginx.

Iji tinye UFW, jiri iwu a.

sudo apt install ufw -y

Na-esote, mee ka UFW jiri iwu na-esonụ.

sudo ufw enable

Site na ndabara, a na-egbochi njikọ niile na-abata ugbu a, a na-anabatakwa ọpụpụ niile.

Ọzọ, chọpụta ụdị ngwa ị rụnyere site na itinye ihe ndị a.

sudo ufw app list

Ihe atụ (Rịba ama na nnukwu ndepụta ga-apụtakwa nke ngwa ndị ọzọ):

 Available applications:
   Nginx Full
   Nginx HTTP
   Nginx HTTPS

Na-esote, ị nwere ike ịme Nginx na HTTP (Port 80), HTTPS (Port 443), ma ọ bụ zuru ezu, gụnyere nhọrọ niile.

HTTP (Ọdụ ụgbọ mmiri 80):

sudo ufw allow 'Nginx HTTP'

HTTP (Ọdụ ụgbọ mmiri 443):

sudo ufw allow 'Nginx HTTPS'

HTTP & HTTPS (zuru ezu):

sudo ufw allow 'Nginx FULL'

N'ime nkuzi, "Nginx (Full)" agbanyere ya.

Ihe atụ mmepụta:

 Rules updated
 Rules updated (v6)

Gosi na iwu firewall na-arụ ọrụ site n'iwu a.

sudo ufw status

Ị ga-ahụ iwu ndị e depụtara na mmepụta.

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

Ka emechara UFW, lelee ka ị hụ na ị nwere ike ịhụ ibe ọdịda Nginx na ihe nchọgharị ịntanetị gị.

http://your_server_ip

Ọ bụrụ na ihe niile na-arụ ọrụ nke ọma, ị ga-ada na ibe na-esonụ:

Otu esi etinye Nginx na Let's Encrypt TLS/SSL na Debian 11 Bullseye

Advertisement


Hazie sava Nginx

Ị ga-enwerịrị adreesị IP nke ihe nkesa ahụ maka ịtọlite. Ụzọ kachasị mfe iji mee nke a bụ ihe ndị a.

Chọta adreesị IP nkesa

Ị ga-enwerịrị adreesị IP nke ihe nkesa ahụ maka ịtọlite. Ụzọ kachasị mfe iji mee nke a bụ ihe ndị a.

curl -4 icanhazip.com

Ihe atụ mmepụta:

XXX.XXX.XXX.XXX IP address

Hazie akwụkwọ ndekọ aha saịtị

Nginx ihe nkesa ngọngọ (dị ka ndị ọbịa mebere na Apache) nwere ike itinye nkọwa nhazi wee kwado ihe karịrị otu ngalaba site na otu sava. N'ime nkuzi, ị ga-edozi ngalaba a na-akpọ example.com, mana ịkwesịrị jiri aha ngalaba gị dochie nke a.

Mgbe ị wụnye Nginx, a na-eji akwụkwọ ndekọ www arụnyere mbụ rụọ ya. A na-ahụ ebe a na / var / www / html /.

Mbụ, mepụta ndekọ, maka example.com, dị ka ndị a, iji ọkọlọtọ “-p” mee akwụkwọ ndekọ aha ndị nne na nna ọ bụla dị mkpa:

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

Nke abụọ, ị ga-ekenye onye nwe akwụkwọ ndekọ aha.

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

Nke atọ, kenye ikike ndekọ aha, ka onye nwe ya gụọ, dee, ma mebie faịlụ ndị ahụ mgbe ọ na-enye naanị ịgụ na mebie ikike nye otu na ndị ọzọ. Ị nwere ike itinye iwu a:

sudo chmod -R 755 /var/www/your_domain

Hazie ibe HTML ule

Nke anọ, mepụta ibe ule nke ị ga-eji gosi na ihe nkesa Nginx gị na-arụ ọrụ.

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

N'ime nchịkọta akụkọ nano na faịlụ ọhụrụ ị mepụtara. Tinye ihe ndị a.

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

Chekwaa faịlụ CTRL+O, wee pụọ CTRL + X.

Mepụta ngọngọ nkesa Nginx

Ugbu a, ị ga-emepụta ngọngọ nkesa maka weebụsaịtị gị. Anyị ga-emepụta ngọngọ sava ọhụrụ dị ka ndị a.

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

Ị nwere ike mado koodu atụ na-esonụ n'ime ngọngọ. Nke a bụ naanị otu HTTP-naanị ọmụmaatụ maka isi ule.

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

Ọmụmaatụ gosiri na ihe nkesa gị na-ege aha sava abụọ, "ngalaba gị" na ọdụ ụgbọ mmiri 80.

Ị ga-achọ ịgbanwe mgbọrọgwụ ndekọ aha / ebe nke mgbọrọgwụ ndekọ ị mepụtara.

Agbanyere Nginx Server Block

Iji mee ka ihe nkesa Nginx mee ihe, ị ga-ejikọta faịlụ nhazi site na saịtị-dị na saịtị-enyere na ndekọ Nginx gị. Enwere ike ime nke a site na iwu ln -s dị ka ndị a.

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

Nhazi ikpeazụ & ọsọ nnwale

N'ọkwa ikpeazụ, ị ga-achọ imepe ndabara gị nginx.conf faịlụ.

sudo nano /etc/nginx/nginx.conf

Na uncomment na-esonụ ahịrị.

server_names_hash_bucket_size 64;

A na-agbanwe nha ịwụ hash aha nkesa dịka mgbe ụfọdụ nsogbu na-ebilite site na ịgbakwunye sava ndị ọzọ.

Na-esote, nwalee Nginx gị ka ijide n'aka na ọ na-arụ ọrụ tupu ịmalitegharịa nke ọma.

sudo nginx -t

Nsonaazụ kwesịrị ịbụ ma ọ bụrụ na enweghị mperi na syntax:

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

Ọ bụrụ na ị nwere mmepụta ok na-esonụ, malitegharịa ihe nkesa Nginx maka mgbanwe ndị ahụ.

sudo systemctl restart nginx

Ugbu a mepee ihe nchọgharị ịntanetị gị wee pịnye na ngalaba aha sava. Ị kwesịrị ịhụ ngọngọ nkesa gị dị ndụ.

Chekwaa Nginx na ka anyị zoo SSL Asambodo efu

Dị ka o kwesịrị, ị ga-achọ ịgba ọsọ Nginx gị HTTPS na-eji asambodo SSL. Ụzọ kacha mma isi mee nke a bụ iji Ka anyị zoo, ikike asambodo efu, akpaaka na mepere emepe nke ndị Otu nyocha nchekwa ịntanetị anaghị akwụ ụgwọ (ISRG).

Mbụ, wụnye ngwugwu certbot dị ka ndị a:

sudo apt install python3-certbot-nginx -y

Ozugbo arụnyere, gbanye iwu a ka ịmalite imepụta asambodo gị:

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

Nke a bụ ezigbo ntọala nke gụnyere ike HTTPS 301 redirects, Strict-Transport-Security nkụnye eji isi mee, na OCSP Stapling. Naanị jide n'aka na ịhazigharịa e-mail na ngalaba aha na ihe ị chọrọ.

Ugbu a URL gị ga-abụ HTTPS://www.example.com kama HTTP://www.example.com.

Rịba ama, ọ bụrụ na ị na-eji nke ochie URL HTTP, ọ ga-akpaghị aka redirect gaa na HTTPS.


Advertisement


Otu esi enweta ndekọ nke Nginx Server

Nginx ndekọ ndekọ

Site na ndabara, ndebanye aha / njehie NGINX niile, ọ gwụla ma ị gbanweela ha, dị na ndekọ ndekọ aha, nke iwu na-esonụ nwere ike ịlele.

Nke mbụ, gaa na ndekọ ndekọ ma depụta faịlụ:

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

Ị ga-ahụ faịlụ ohere na njehie ndị a:

Ndekọ nnweta:

/var/log/nginx/access.log

Ndekọ mperi:

/var/log/nginx/error.log

Ka ilele ndekọ na ozugbo na ọdụ gị site na iji iwu sudo tail -f /location/of/log path.

Ihe Nlereanya:

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

Nhọrọ ọzọ bụ ibipụta ahịrị X ikpeazụ. Dịka ọmụmaatụ, ejiri 30 dochie X ka ọ bipụta ahịrị 30 site na ịgbakwụnye -n 30 ọkọlọtọ.

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

Ndị a bụ naanị ụfọdụ ọmụmaatụ ndekọ ndekọ.

Otu esi ahazi Nginx Log Rotate

Nginx na-arụnye ntụgharị log na-akpaghị aka wee hazie ya na ndabara nke bụ ịtụgharị kwa ụbọchị. Ị nwere ike ịgbanwe ntọala ndị a site na ịnweta faịlụ dịka egosiri n'okpuru.

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

Na-esote, ị ga-ahụ otu ma ọ bụrụ na ọ bụghị nhazi faịlụ yiri ya. Ị nwere ike gbanwee ọdịnaya ebe a. Ọtụtụ mgbe ị nwere ike ịgbanwe ndekọ ole ị ga-edobe ma ọ bụ na-aga kwa ụbọchị gaa kwa izu. Ekwesịrị ịhapụ nke a na ndabara ọ gwụla ma ịnwe mkpa ndekọ aha akọwapụtara maka sọftụwia dị ka fail2ban monitoring ma ọ bụ ihe yiri ya.

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

Ntọala bụ isi nke ị ga-achọ ịgbanwe bụ ndị a:

  • Kwa ụbọchị - Enwere ike ịgbanwe nke a ka ọ bụrụ kwa izu, kwa ọnwa. Ekwesịrị idobe nke a kwa ụbọchị, ma ọ bụghị ya, ịgafe faịlụ log ga-esi ike.
  • Tụgharịa 14 - Nke a bụ ole ndekọ ị ga-edebe ma wepụ ya, yabụ na max enwere naanị ndekọ 14, ma ọ bụrụ na ịchọrọ idobe ọnụ ahịa ndekọ ụbọchị 7, gbanwee nke a na 7.

A na-atụ aro ka ị ghara imetụ ntọala ọ bụla aka ma ọ bụrụ na ị maara ihe ị na-eme.

Otu esi emelite Nginx

A ga-emelite Nginx na ndabara mgbe ụdị ọhụrụ rutere ebe nchekwa. Tupu ịkwalite, a na-adụ ọdụ ka ịkwado ndekọ Nginx gị ma ọ bụ, opekempe, nginx.conf faịlụ. Ị nwere ike iji iwu na-esonụ mee nke ọ bụla.

Kwado nginx.conf (A kwadoro nke ukwuu):

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

Kwado nchekwa Nginx gị niile ma ọ bụrụ na ịchọrọ:

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

Na-esote, gbaa iwu mmelite ọkọlọtọ.

sudo apt update

Ọ bụrụ nkwalite dị, mee nkwalite ahụ.

sudo apt upgrade 

Enwere ike ịkpali gị nke a n'oge nkwalite ma ọ bụ nrụnye, mana iji aka mee nke a tupu oge eruo dị ezigbo mkpa. Maka nnukwu nhazi Nginx nke ọtụtụ saịtị, ịkwado ihe dị ka Github ma ọ bụ Gitlab ga-aba uru karị.


Advertisement


Okwu na mmechi

N'ime nkuzi a, ị mụtala ịwụnye na melite nhazi Nginx bụ isi na ngalaba gị na Debian 11 Bullseye wee mepụta akwụkwọ SSL efu site na iji Let's Encrypt. N'ozuzu, Nginx bụ ngwa ngwa weebụ kachasị eji na ewu ewu ugbu a, na ọnwa ọ bụla na afọ na-arị elu na-ewere òkè ahịa site na Apache.

Ụfọdụ ndị na-agba ọsọ ọhụrụ na-amalite ịmalite, dị ka Openlitespeed ma nyere ndị a ngwa weebụ ndị ọzọ, maka ugbu a, na-elekwasị anya na ihe ụfọdụ dị ka WordPress. Nginx ga-abụ ngwa na-aga na webụ nwa oge.

Idenye aha
Gwa nke
0 Comments
Inline nzaghachi
Lee echiche niile
0
Ga-ahụ n'anya gị echiche, biko okwu.x