Kako instalirati Nginx s Let's Encrypt TLS/SSL na Linux Mint 20

Nginx je softver otvorenog koda za web posluživanje, obrnuto proxy, cachiranje, balansiranje opterećenja, streaming medija i još mnogo toga. Linux Mint je distribucija Linuxa vođena zajednicom temeljena na Ubuntuu (bazirana na Debianu), u paketu s raznim besplatnim aplikacijama otvorenog koda. Ova dvojica mogu ugostiti i dobro funkcionirati zajedno, s obzirom da su oboje izvrsni u svojim područjima.

Što je Linux Mint?

Linux Mint ima za cilj proizvesti moderan, elegantan i udoban operativni sustav koji je moćan i jednostavan za korištenje. Linux Mint jedna je od najpopularnijih desktop Linux distribucija i koriste je milijuni ljudi.

Neki od razloga za uspjeh Linux Minta su:

  • Radi iz kutije, s punom multimedijskom podrškom i iznimno je jednostavan za korištenje.
  • To je i besplatno i otvorenog koda.
  • Pokreće ga zajednica. Korisnici se potiču da pošalju povratne informacije projektu kako bi se njihove ideje mogle iskoristiti za poboljšanje Linux Minta.
  • Temeljen na Debianu i Ubuntuu, nudi oko 30,000 paketa i jedan od najboljih softverskih menadžera.
  • Sigurno je i pouzdano. Zahvaljujući konzervativnom pristupu ažuriranju softvera, jedinstvenom Upravitelju ažuriranja i robusnosti njegove Linux arhitekture, Linux Mint zahtijeva vrlo malo održavanja (bez regresije, bez antivirusa, bez anti-špijunskog softvera… itd.).

Oglas


Što je Nginx?

Nginx je besplatni softver za HTTP poslužitelj otvorenog koda. Osim svojih mogućnosti HTTP poslužitelja, NGINX također može funkcionirati kao proxy poslužitelj za e-poštu (IMAP, POP3 i SMTP) te obrnuti proxy i balansator opterećenja za HTTP, TCP i UDP poslužitelje. Cilj iza NGINX-a bio je stvoriti najbrži web poslužitelj na svijetu, a održavanje te izvrsnosti još uvijek je a središnji cilj projekta. NGINX dosljedno pobjeđuje Apache i druge poslužitelje mjerila za mjerenje performansi web poslužitelja. Međutim, od izvornog izdanja NGINX-a, web stranice su se proširile s jednostavnih HTML stranica na dinamičan, višestruki sadržaj. NGINX je rastao zajedno s njim i sada podržava sve komponente modernog weba, uključujući WebSocket, HTTP/2, gRPC i streaming više video formata (HDS, HLS, RTMP i drugi).

Prednosti Nginxa:

  • Instalacije i konfiguracije su jednostavne i lake. …
  • Najbrži i najbolji za posluživanje statičnih datoteka. …
  • Dinamički sadržaj pretvoren u statički sadržaj. …
  • U usporedbi s Apacheom, obrađuje se 4 puta više istodobnih veza. …
  • Kompatibilnost s često korištenim web aplikacijama. …
  • Podrška za balansiranje opterećenja.

U sljedećem vodiču bit će vam prikazano kako instalirati Nginx na Linux Mint 20.

Preduvjeti

Ažurirajte operativni sustav

Ažurirajte svoj Linux Mint operativni sustav kako biste bili sigurni da su svi postojeći paketi ažurirani:

sudo apt update && sudo apt upgrade -y

Tutorial će koristiti sudo naredba i pod pretpostavkom da imate sudo status. Za provjeru sudo statusa na svom računu:

sudo whoami

Primjer izlaza koji prikazuje sudo status:

[joshua@linuxmint ~]$ sudo whoami
root

Ako niste postavili sudo korisnički račun, a želite, posjetite naš vodič na Kako dodati korisnika u Sudoers na Linux Mintu.

Za korištenje root račun, upotrijebite sljedeću naredbu s root lozinkom za prijavu.

su

Oglas


Instalirajte Nginx

Metoda 1. Instalirajte Nginx Stable iz zadanog spremišta

Prva metoda je instaliranje Nginxa iz zadanih repozitorija Linux Minta, a ove su verzije dokazano stabilne i sigurne. Ako trebate pokrenuti primarni web poslužitelj ili obrnuti proxy, često se preporučuje instaliranje zadanih paketa spremišta.

Da biste instalirali Nginx, pokrenite sljedeću naredbu.

sudo apt install nginx

Primjer rezultata:

Kako instalirati Nginx s Let's Encrypt TLS/SSL na Linux Mint 20

Tip "Y", a zatim pritisnite "ENTER TIPKA" za nastavak instalacije.

Zatim provjerite verziju verzije i je li instalacija bila uspješna.

sudo nginx -v

Primjer rezultata:

nginx version: nginx/1.18.0

Metoda 2. Instalirajte najnoviji Nginx Stable ili Mainline s Ondřej Surý PPA

Alternativno, umjesto da instalirate zadanu Nginx stabilnu verziju iz repozitorija Ubuntu 20.04, možete instalirati ili Nginx Stable ili Mainline koristeći PPA od Ondřeja Surýa, PHP održavatelja za Debian.

Instalirajte jedan od sljedećih PPA-a sljedećom naredbom:

Instalirajte najnoviji Nginx (STABILNO):

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

Instalirajte najnoviji Nginx (MAINLINE):

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

Sada kada ste instalirali PPA i ažurirali popis spremišta, instalirajte Nginx sa sljedećim:

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

Primjer rezultata:

Kako instalirati Nginx s Let's Encrypt TLS/SSL na Linux Mint 20

Tip "Y", a zatim pritisnite "ENTER TIPKA" za nastavak instalacije.

Zatim provjerite verziju verzije i je li instalacija bila uspješna.

sudo nginx -v

Primjer izlaza (iz glavne linije):

nginx version: nginx/1.21.3

Sada provjerite je li najnoviji Nginx iz spremišta Ondřej Surý instaliran pomoću naredba politike apt-cache, Napomena, tutorial primjer instaliran Nginx Mainline:

apt-cache policy nginx

Primjer izlaza za Nginx glavna linija:

Kako instalirati Nginx s Let's Encrypt TLS/SSL na Linux Mint 20

Imajte na umu da se od vas može tražiti da zadržite ili zamijenite postojeće / etc / nginx /nginx.conf konfiguracijsku datoteku tijekom instalacije ako ste prethodno imali instaliran Nginx. Preporuča se zadržati svoju trenutnu konfiguracijsku datoteku pritiskom na (N). Kopija će se napraviti bez obzira na verziju održavatelja, a to također možete provjeriti u budućnosti.

Primijetit ćete da će u ovoj verziji biti dostupni dodatni moduli, ponajprije podrška za brotli. Instalirati brotli, slijedite korake u nastavku.

Otvorite svoj nginx.conf konfiguracijska datoteka:

nano /etc/nginx/nginx.conf

Sada dodajte dodatne retke prije u HTTP{} odjeljak:

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;

Franjevački brotli_comp_level može se postaviti između 1 (najniža) i 11 (najviše). Obično se većina poslužitelja nalazi u sredini, ali ako je vaš poslužitelj čudovište, postavite na 11 i pratite razine korištenja CPU-a.

Zatim testirajte kako biste bili sigurni da promjene rade ispravno prije nego što ih objavite:

sudo nginx -t

Ako promjene rade ispravno, trebali biste vidjeti sljedeće:

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

Sada izvršite promjene uživo ponovnim pokretanjem poslužitelja:

sudo systemctl restart nginx
sudo systemctl status nginx

Primjer rezultata:

Kako instalirati Nginx s Let's Encrypt TLS/SSL na Linux Mint 20

UFW konfiguracija

Prema zadanim postavkama, UFW je instaliran na Linux Mint. Ako koristite UFW ili želite jasniji prikaz pokretanja vatrozida, koristite informacije u nastavku da biste konfigurirali UFW za Nginx.

Ako UFW nije instaliran, ponovno instalirajte vatrozid pomoću sljedeće naredbe:

sudo apt install ufw -y

Zatim omogućite UFW sljedećom naredbom.

sudo ufw enable

Prema zadanim postavkama, sve dolazne veze su sada blokirane, a sve odlazne su dopuštene.

Zatim saznajte koje ste aplikacije instalirali unosom sljedećeg.

sudo ufw app list

Primjer izlaza (Imajte na umu da će se pojaviti opsežan popis i drugih aplikacija):

 Available applications:
   Nginx Full
   Nginx HTTP
   Nginx HTTPS

Zatim možete omogućiti Nginx u HTTP (port 80), HTTPS (port 443) ili Full, uključujući sve opcije.

HTTP (port 80):

sudo ufw allow 'Nginx HTTP'

HTTP (port 443):

sudo ufw allow 'Nginx HTTPS'

HTTP & HTTPS (puna):

sudo ufw allow 'Nginx FULL'

u tutorialu, "Nginx (pun)" bila omogućena.

Primjer rezultata:

 Rules updated
 Rules updated (v6)

Potvrdite da su pravila vatrozida aktivna sljedećom naredbom.

sudo ufw status

Vidjet ćete pravila navedena u izlazu.

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

Nakon što je UFW konfiguriran, provjerite možete li vidjeti Nginx odredišnu stranicu u svom internetskom pregledniku.

http://your_server_ip

Ako sve radi dobro, trebali biste doći na sljedeću stranicu:

Kako instalirati Nginx s Let's Encrypt TLS/SSL na Linux Mint 20

Oglas


Konfigurirajte Nginx poslužitelj

Morat ćete imati spremnu IP adresu poslužitelja za postavljanje. Najlakši način da to učinite je sljedećim.

Pronađite IP adresu poslužitelja

Morat ćete imati spremnu IP adresu poslužitelja za postavljanje. Najlakši način da to učinite je sljedećim.

curl -4 icanhazip.com

Primjer rezultata:

XXX.XXX.XXX.XXX IP address

Ako se pojavi pogreška, vjerojatno ćete morati instalirati curl paket na svoj sustav. Brzo pokrenite ovu naredbu:

sudo apt install curl -y

Postavite izvorni direktorij web-mjesta

Nginx blokovi poslužitelja (slično virtualnim hostovima u Apacheu) može enkapsulirati pojedinosti o konfiguraciji i hostirati više od jedne domene s jednog poslužitelja. U tutorialu ćete postaviti domenu pod nazivom example.com, ali trebali biste zamijenite ovo imenom svoje domene.

Kada instalirate Nginx, on se kreira s unaprijed instaliranim www direktorijem. Lokacija se nalazi na / Var / www / html /.

Prvo stvorite imenik za example.com, kako slijedi, koristeći oznaku "-p" za izradu svih potrebnih roditeljskih direktorija:

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

Drugo, morat ćete dodijeliti vlasnika imenika.

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

Treće, dodijelite dozvole direktoriju kako bi vlasnik čitao, pisao i izvršavao datoteke dok grupama i drugima daje dopuštenja samo za čitanje i izvršavanje. Možete unijeti sljedeću naredbu:

sudo chmod -R 755 /var/www/your_domain

Postavite testnu HTML stranicu

Četvrto, stvorite testnu stranicu koju ćete koristiti da potvrdite da vaš Nginx poslužitelj radi.

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

Unutar nano uređivača i nove datoteke koju ste stvorili. Unesite sljedeće.

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

Spremite datoteku CTRL+O, zatim izađi CTRL + X.

Napravite blok poslužitelja Nginx

Sada ćete stvoriti blok poslužitelja za svoju web stranicu. Napravit ćemo novi blok poslužitelja na sljedeći način.

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

Sljedeći primjer koda možete zalijepiti u blok. Ovo je samo jedan Primjer samo za HTTP za osnovno ispitivanje.

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

Primjer pokazuje da vaš poslužitelj osluškuje dva imena poslužitelja, "vaša_domena" na luci 80.

Morat ćete promijeniti korijenski direktorij u ime/lokaciju korijenskog direktorija koji ste stvorili.

Omogućite blokiranje Nginx poslužitelja

Morate povezati konfiguracijske datoteke s web-mjesta-dostupnih na web-mjestima s omogućenim u vašem Nginx direktoriju kako biste omogućili blokove Nginx poslužitelja. To se može učiniti naredbom ln -s na sljedeći način.

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

Konačna konfiguracija i probni rad

U završnoj fazi morat ćete otvoriti zadani nginx.conf file.

sudo nano /etc/nginx/nginx.conf

I dekomentirajte sljedeći redak.

server_names_hash_bucket_size 64;

Veličina hash bucketa naziva poslužitelja se mijenja jer ponekad nastaju problemi zbog dodavanja dodatnih poslužitelja.

Zatim testirajte svoj Nginx kako biste bili sigurni da radi prije pravilnog ponovnog pokretanja.

sudo nginx -t

Izlaz bi trebao biti ako nema pogrešaka u sintaksi:

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

Ako imate sljedeći u redu izlaz, ponovno pokrenite Nginx poslužitelj kako bi se promjene izvršile.

sudo systemctl restart nginx

Sada otvorite svoj Internet preglednik i upišite naziv domene poslužitelja. Trebali biste vidjeti da je vaš blok poslužitelja aktivan.

Kako instalirati Nginx s Let's Encrypt TLS/SSL na Linux Mint 20

Osigurajte Nginx s Let's Encrypt SSL Free certifikatom

U idealnom slučaju, želite pokrenuti svoj Nginx HTTPS pomoću SSL certifikata. Najbolji način da to učinite je korištenje Hajdemo šifrirati, besplatno, automatizirano i otvoreno certifikacijsko tijelo koje vodi neprofitna grupa za istraživanje internetske sigurnosti (ISRG).

Prvo, instalirajte certbot paket kako slijedi:

sudo apt install python3-certbot-nginx -y

Nakon instalacije, pokrenite sljedeću naredbu da započnete kreiranje certifikata:

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

Ovo je idealno postavljanje koje uključuje prisilno HTTPS 301 preusmjeravanje, zaglavlje Strict-Transport-Security i OCSP spajanje. Samo pazite da prilagodite e-poštu i naziv domene svojim zahtjevima.

Sada će vaš URL biti HTTPS://www.example.com umjesto HTTP://www.example.com.

Napomena, ako koristite stari HTTP URL, automatski će se preusmjeriti na HTTPS.

Po želji, možete postaviti cron posao za automatsko obnavljanje certifikata. Certbot nudi skriptu koja to radi automatski, a prvo možete testirati kako biste bili sigurni da sve radi tako što ćete izvesti suho izvođenje.

sudo certbot renew --dry-run

Ako sve radi, otvorite prozor crontab pomoću sljedeće terminalske naredbe.

sudo crontab -e

Zatim navedite vrijeme kada se treba automatski obnoviti. To bi trebalo provjeravati najmanje svaki dan, a ako certifikat treba obnoviti, skripta neće ažurirati certifikat. Ako trebate pomoć u pronalaženju dobrog vremena za postavljanje, upotrijebite crontab.guru besplatni alat.

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

UŠTEDI (CTRL+O) zatim izađi (CTRL+X), i cronjob će biti automatski omogućen.


Oglas


Kako pristupiti zapisnicima Nginx poslužitelja

Nginx direktorij dnevnika

Prema zadanim postavkama, svi NGINX zapisnici pristupa/pogreška, osim ako ih niste promijenili, nalaze se u direktoriju dnevnika koji može vidjeti sljedeća naredba.

Prvo idite do direktorija dnevnika i datoteka s popisom:

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

Trebali biste pronaći sljedeće datoteke pristupa i pogrešaka:

Dnevnik pristupa:

/var/log/nginx/access.log

Zapisnik pogrešaka:

/var/log/nginx/error.log

Za pregled zapisnika u stvarnom vremenu na vašem terminalu pomoću naredbe sudo tail -f /location/of/log path.

Primjer:

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

Druga je mogućnost ispisati zadnjih X redaka. Na primjer, X se zamjenjuje s 30 za ispis 30 redaka dodavanjem -n 30 zastava.

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

Ovo su samo neki primjeri čitanja dnevnika.

Kako konfigurirati rotiranje dnevnika Nginxa

Nginx automatski instalira rotaciju dnevnika i konfigurira je na zadanu vrijednost koja će se rotirati svakodnevno. Ove postavke možete promijeniti tako da pristupite datoteci kao što je prikazano u nastavku.

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

Zatim ćete vidjeti istu, ako ne i sličnu strukturu datoteke. Ovdje možete mijenjati sadržaj. Uglavnom možete promijeniti broj dnevnika za čuvanje ili prijeći s dnevnih na tjedni. Ovo bi trebalo ostaviti na zadanom, osim ako nemate posebne potrebe za evidencijom za softver kao što je praćenje fail2ban ili slično.

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

Glavne postavke koje ćete vjerojatno htjeti promijeniti su sljedeće:

  • dnevno – Ovo se može promijeniti u Tjedno, Mjesečno. Ovo bi se trebalo održavati svakodnevno, inače će biti teško proći kroz datoteku dnevnika.
  • Zakreni 14 – Ovo je koliko zapisnika treba zadržati i ukloniti, tako da na maksimumu ima samo 14 dnevnika, ako želite zadržati samo 7 dana vrijedne zapisnika promijenite ovo na 7.

Preporuča se da ne dodirujete druge postavke osim ako znate što radite.

Kako ažurirati Nginx

Nginx će se ažurirati prema zadanim postavkama kada nova verzija stigne u spremišta. Prije nadogradnje uvijek se savjetuje da napravite sigurnosnu kopiju svog Nginx direktorija ili, u najmanju ruku, nginx.conf datoteka. Možete učiniti bilo što pomoću sljedeće naredbe.

Sigurnosno kopirajte nginx.conf (vrlo preporučljivo):

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

Napravite sigurnosnu kopiju cijele mape Nginx ako želite:

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

Zatim pokrenite standardnu ​​naredbu za ažuriranje.

sudo apt update

Ako je dostupna nadogradnja, pokrenite je.

sudo apt upgrade 

Možda će vam se to zatražiti tijekom nadogradnje ili instalacije, ali ručno je to učiniti prije vrlo bitno. Za velike konfiguracije Nginxa na više stranica, sigurnosna kopija na nešto poput Githuba ili Gitlaba bila bi još korisnija.


Oglas


Komentari i zaključak

U tutorialu ste naučili instalirati i postaviti osnovnu konfiguraciju Nginxa na svoju domenu na Linux Mint-u i stvoriti besplatni SSL certifikat pomoću Let's Encrypt. Općenito, Nginx je trenutno najkorišteniji i najpopularniji softver za web aplikacije, a svaki mjesec i godina nadmašuju sve veći tržišni udio od Apachea.

Počinju se pojavljivati ​​neki novi kandidati, kao što je Openlitespeed, ali s obzirom na ove druge web aplikacije, za sada se usredotočite na određene stvari poput WordPressa. Nginx će neko vrijeme biti glavna web aplikacija.

Pretplati me
Obavijesti o
0 Komentari
Umetne povratne informacije
Pogledajte sve komentare
0
Volio bih vaše misli, molim vas komentirajte.x