Jak nainstalovat Nginx na Debian 12, 11 nebo 10

Nginx je výkonný webový server známý svým vysokým výkonem a nízkou spotřebou zdrojů. Původně navržený pro řešení problému C10k vyniká v poskytování statického obsahu, vyrovnávání zátěže a reverzní proxy. Kombinace Nginx s Debianem, známým pro svou stabilitu a bezpečnost, vede k robustnímu a spolehlivému serverovému prostředí.

Klíčové vlastnosti Nginx:

  • Vysoký výkon: Efektivně zvládá více souběžných připojení.
  • Nízké využití zdrojů: Optimalizováno pro provoz s minimální pamětí a CPU.
  • Vyrovnávání zátěže: Distribuuje provoz na více serverů pro lepší výkon.
  • Reverzní proxy: Bezproblémově předává požadavky klientů na backend servery.
  • Zpracování statického obsahu: Poskytuje statické soubory rychle a efektivně.
  • Bezpečnostní funkce: Podporuje SSL/TLS pro šifrovanou komunikaci.
  • Flexibilita: Podporuje protokoly jako HTTP, HTTPS, SMTP, POP3 a IMAP.

Výhody kombinace Nginx s Debianem:

  • Stabilita: Reputace Debianu pro stabilitu zajišťuje, že váš server zůstane spolehlivý.
  • Bezpečnostní: Robustní bezpečnostní opatření Debianu chrání váš server Nginx před zranitelností.
  • Snadnost použití: Systém správy balíčků Debianu zjednodušuje instalaci a údržbu Nginx.
  • Podpora komunity: Nginx a Debian mají silné komunity poskytující rozsáhlé zdroje a podporu.

Po přechodu do nastavení zjistíte, že stabilita Debianu se perfektně snoubí s efektivitou Nginx, což vytváří ideální prostředí pro vaše webové aplikace. Pojďme se ponořit do kroků potřebných k instalaci a konfiguraci Nginx na serveru Debian.

Příprava systému před instalací Nginx

Před instalací Nginx se ujistěte, že je váš systém aktualizován. To zabraňuje potenciálním konfliktům během instalace a snižuje riziko problémů s kompatibilitou a zranitelností zabezpečení.

Chcete-li aktualizovat systémové balíčky, spusťte následující:

sudo apt update && sudo apt upgrade

Tento příkaz načte seznam dostupných aktualizací (přes apt update) a poté upgraduje aktuální softwarové balíčky na jejich nejnovější verze (pomocí apt upgrade).

Nainstalujte standard NGINX 'Web Server'

Ve výchozím nastavení je NGINX dostupný v repozitářích Debianu. Díky tomu je proces instalace přímočarý.

Spusťte následující příkaz pro instalaci nginx:

sudo apt install nginx

The apt install příkaz říká APT obslužnému programu pro manipulaci s balíčky (součást systému Debian), aby nainstaloval balíček NGINX.

Volitelné: Nainstalujte plnou verzi NGINX

NGINX nabízí a nginx-full verze s přídavnými moduly, které se nenacházejí ve standardní verzi. Pokud požadujete více funkcí, nainstalujte si plnou verzi nginx:

sudo apt install nginx-full

Volitelné: Nainstalujte verzi NGINX-Extras

Pro ještě širší sadu funkcí zvažte nginx-extras verze. Instalovat:

sudo apt install nginx-extras

Ověření instalace NGINX

Po instalaci se ujistěte, že NGINX běží správně.

Zkontrolujte stav služby NGINX pomocí následujícího:

systemctl status nginx

NGINX funguje správně, pokud výstup ukazuje „aktivní (běží). Pokud ne, výstup bude podrobně popisovat chybu pro řešení problémů.

Pokud NGINX není povoleno, použijte:

sudo systemctl enable nginx --now

Nakonfigurujte UFW Firewall pro Nginx

UFW neboli Uncomplicated Firewall poskytuje snadno použitelné rozhraní pro správu pravidel brány firewall iptables. Ve výchozím nastavení není na Debianu nainstalován, ale můžete jej získat z výchozích repozitářů. Pokud má váš server veřejný přístup, měli byste nastavit pravidla UFW pro zabezpečení.

Nainstalujte UFW Firewall

Pokud ve vašem systému ještě není nainstalován UFW, můžete tak učinit provedením následujícího příkazu:

sudo apt install ufw

Povolit UFW Firewall

Po dokončení instalace můžete povolit UFW spuštěním následujícího příkazu:

sudo ufw enable

Výchozí nastavení UFW blokuje všechna příchozí připojení a povoluje všechna odchozí. To znamená, že zastaví nevyžádaný přístup k systému, ale umožní vašemu systému dosáhnout vnějšího světa.

Výpis nainstalovaných aplikací

UFW používá aplikační profily, což jsou sady pravidel pro konkrétní aplikace. Chcete-li zobrazit nainstalované aplikace, které mají profily UFW, spusťte:

sudo ufw app list

Konfigurace pravidel UFW pro NGINX

V závislosti na vašich potřebách můžete nakonfigurovat UFW tak, aby umožňoval připojení NGINX přes HTTP (Port 80), HTTPS (Port 443) nebo obojí.

Pouze pro HTTP (Port 80):

sudo ufw allow 'Nginx HTTP'

Pouze HTTPS (Port 443):

sudo ufw allow 'Nginx HTTPS'

HTTP i HTTPS:

sudo ufw allow 'Nginx Full'

Ověření pravidel brány firewall

Chcete-li potvrdit, že jsou vaše pravidla zavedena, zkontrolujte aktivní pravidla brány firewall:

sudo ufw status

Testování konfigurace NGINX

Po nastavení UFW se ujistěte, že vidíte vstupní stránku NGINX. V prohlížeči přejděte na IP adresu vašeho serveru:

http://your_server_ip

Nebo pro místní nastavení:

http://localhost

Předpokládejme, že vidíte výchozí stránku NGINX; vaše konfigurace funguje. Tím končí nastavení firewallu pro NGINX v Debianu.

Vytvořte bloky serveru NGINX

Stejně jako virtuální hostitelé Apache vám bloky serveru NGINX umožňují hostovat více domén z jednoho serveru. Každá doména má svá konfigurační nastavení. V této příručce nahraďte „example.com“ svým skutečným názvem domény.

Vytvořte adresář pro vaši doménu

Nastavte adresář pro vaši doménu. Tento adresář bude ukládat soubory vašeho webu:

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

Přiřaďte vlastnictví adresáři Nginx

Přiřaďte vlastnictví adresáře uživateli a skupině „www-data“, které NGINX obvykle používá:

sudo chown -R www-data:www-data /var/www/example.com/

Vytvořte testovací HTML stránku Nginx

Vytvořte testovací HTML stránku v adresáři vaší domény pro potvrzení nastavení NGINX:

sudo nano /var/www/example.com/index.html

Přidejte následující kód HTML:

<html>
 <head>
  <title>Welcome to Example.com</title>
 </head>
 <body>
   <h1>Success! The NGINX server block is working!</h1>
 </body>
</html>

Po vložení kódu do editoru nano stiskněte CTRL+O pro uložení změn a poté CTRL+X pro ukončení editoru.

Vytvořte blok serveru NGINX pro testovací stránku

Nastavte blokování serveru pro svůj web:

sudo nano /etc/nginx/sites-available/example.com.conf

Přidejte následující konfiguraci:

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

 root /var/www/example.com/;
 index index.html index.htm index.nginx-debian.html;

 server_name example.com www.example.com;

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

Tato konfigurace říká NGINX, aby naslouchala příchozím připojením na portu 80 pro oba example.com a www.example.com. Ujistěte se, že vyměňte root s cestou k adresáři, kterou jste vytvořili dříve.

Povolte blokování serveru NGINX pomocí symbolického odkazu

Povolte blokování serveru vytvořením symbolického odkazu z adresáře sites-available do adresáře sites-enabled:

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

Konečná konfigurace a zkušební provoz

Nakonec upravíme výchozí konfigurační soubor NGINX a provedeme testovací běh, abychom se ujistili, že vše funguje podle očekávání.

Úprava konfiguračního souboru NGINX

Otevři nginx.conf soubor:

sudo nano /etc/nginx/nginx.conf

Hledej čáru server_names_hash_bucket_size 64; v rámci http {} zablokovat a odkomentovat.

Tato direktiva umožňuje NGINX zpracovávat dlouhá jména domén a významnější počet názvů serverů tím, že pro tento účel alokuje více paměti. Buďte však opatrní, abyste tuto hodnotu nenastavili příliš vysoko, protože by mohla spotřebovat více paměti, než je potřeba.

Uložte změny a ukončete editor stisknutím CTRL+O a CTRL+X.

Otestujte svou konfiguraci NGINX

Než budete pokračovat a restartovat NGINX, je vhodné ověřit, zda je syntaxe vaší konfigurace správná. Spuštěním následujícího příkazu zahájíte zkušební provoz:

sudo nginx -t

Pokud je vaše konfigurace správná, uvidíte tento výstup:

nginx: syntaxe konfiguračního souboru /etc/nginx/nginx.conf je v pořádku nginx: konfigurační soubor /etc/nginx/nginx.conf test byl úspěšný

Tyto zprávy označují, že vaše konfigurace NGINX byla úspěšně ověřena.

Ověření vašeho bloku serveru

Chcete-li zajistit správné fungování blokování serveru, otevřete svou doménu ve webovém prohlížeči. Měli byste vidět testovací stránku potvrzující, že váš blok serveru je aktivní.

Další příkazy Nginx

Vylepšení zabezpečení souborů na vašem webovém serveru

Zabezpečení souborů a složek na vašem webovém serveru je prvořadé. Vyhněte se příliš tolerantním přístupovým právům. Pomocí těchto příkazů nastavte správná oprávnění pro všechny soubory a adresáře ve vašem webrootu.

Nezapomeňte vyměnit /var/www/example.com/ s vaší webroot cestou:

sudo find /var/www/example.com/ -type d -exec chmod 755 "{}" \;
sudo find /var/www/example.com/ -type f -exec chmod 644 "{}" \;

Tyto příkazy nastavují vlastníkovi oprávnění ke čtení a spouštění pro adresáře a oprávnění ke čtení a zápisu pro soubory. Skupiny a další mají přístup pouze pro čtení. Upravte tato oprávnění podle požadavků vaší aplikace.

Zabezpečení Nginx s certifikátem Let's Encrypt Free SSL

Použití protokolu HTTPS zajišťuje zabezpečení webového serveru. Let's Encrypt poskytuje bezplatný certifikát SSL. Nainstalujte balíček certbot pomocí:

sudo apt install python3-certbot-nginx

Poté spusťte vytvoření certifikátu:

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

Nahraďte e-mailem a názvem domény. Tento příkaz nastaví HTTPS s požadovanými bezpečnostními funkcemi.

Nastavení automatické obnovy certifikátu

Certifikáty Let's Encrypt vydrží 90 dní. Nastavte automatické obnovování pomocí skriptu Certbot. Otestujte postup:

sudo certbot renew --dry-run

Pokud bude úspěšný, přidejte do crontab příkaz pro obnovení:

sudo crontab -e

Zahrňte tento řádek pro obnovení denně o půlnoci:

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

Protokoly serveru Nginx

Sledujte protokoly svého serveru pro dobře udržovaný webový server. Ve výchozím nastavení jsou protokoly uloženy /var/log/nginx. Seznam je s:

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

Nejrelevantnější soubory protokolu jsou access.log a error.log. Chcete-li sledovat protokoly v reálném čase, použijte tail -f příkaz následovaný cestou k protokolu:

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

Aktualizujte Nginx

Před aktualizací serveru Nginx je rozumné vytvořit zálohu vašich aktuálních konfigurací. Chcete-li zálohovat hlavní nginx.conf soubor, použijte následující příkaz:

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

V případech, kdy jste rozsáhle přizpůsobili nastavení Nginx, možná budete chtít zálohovat celý adresář Nginx:

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

S bezpečně zálohovanými konfiguracemi můžete nyní pokračovat v aktualizaci Nginx:

sudo apt update
sudo apt upgrade

Pravidelné zálohování konfigurací je dobrou praxí, zejména ve složitých nastaveních.

Odebrat Nginx

Pokud již Nginx na svém serveru nepotřebujete, můžete jej odebrat podle následujících kroků. Nejprve se ujistěte, že je zastavena služba Nginx:

sudo systemctl disable nginx --now

Dále zcela odstraňte balíček Nginx:

sudo apt remove nginx

Stále můžete najít zbytky konfigurací Nginx v /etc/nginx adresář. Chcete-li je odstranit, použijte příkaz:

sudo rm -R /etc/nginx/

Pamatujte, že tím budou odstraněny všechny vaše vlastní konfigurační soubory, takže se ujistěte, že máte vše, co potřebujete, zálohováno, než budete pokračovat v tomto kroku.

Nakonfigurujte parametry rotace protokolu v Nginx

Nginx ve výchozím nastavení obsahuje funkci denní rotace protokolu. Tato nastavení si však můžete přizpůsobit podle svých potřeb.

Přístup k konfiguračnímu souboru pro rotaci protokolu

Chcete-li upravit nastavení rotace protokolů, musíte se dostat do konfiguračního souboru. Zde je návod, jak jej otevřít pomocí textového editoru nano:

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

Jakmile soubor otevřete, uvidíte obsah podobný následujícímu. Upravte direktivy v tomto souboru tak, aby vyhovovaly vašim potřebám uchovávání a rotace protokolů, zejména pokud používáte monitorovací nástroje, jako je fail2ban.

Ukázkový soubor konfigurace rotace protokolu

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

Pochopení primárních konfiguračních parametrů

V rámci této konfigurace se správci systému obvykle zaměřují na dvě hlavní nastavení:

  1. Denně: Toto nastavení nastavuje frekvenci rotace protokolu. I když je výchozí nastavení „denně“, můžete jej změnit na „týdenní“ nebo „měsíční“. Denní rotace však obvykle zjednodušují správu protokolů.
  2. Otočit 14: Toto číslo říká systému, kolik souborů protokolu má uchovávat. Například nastavení „14“ zachová 14 nejnovějších protokolů. Pokud chcete uchovávat pouze týden protokolů, upravte toto číslo na „7“.

I když vám Nginx umožňuje upravit další nastavení, vždy provádějte změny opatrně. Změna nastavení bez pochopení jejich dopadu může způsobit neočekávané výsledky. Ujistěte se, že jste tato nastavení upravili tak, aby vyhovovala vašim potřebám, aniž byste způsobili nezamýšlené problémy.

Pamatujte, že neexistuje žádný univerzální přístup ke správě protokolů. Před provedením změn vždy posuďte své konkrétní prostředí a požadavky.

Závěrečné myšlenky

V této příručce jsme prošli nastavením Nginx na Debianu, pokrývali instalaci, konfiguraci a základní optimalizaci. Spojením efektivity Nginxu se stabilitou Debianu jste vytvořili pevný základ pro váš webový server. Nezapomeňte udržovat svůj server aktualizovaný a prozkoumejte další moduly Nginx pro vylepšené funkce. Pokud narazíte na nějaké problémy, silné komunity kolem Debianu a Nginxu jsou vždy skvělými zdroji. Děkujeme za sledování a přejeme šťastný hosting!

Joshua James
Následuj mě
Nejnovější příspěvky uživatele Joshua James (vidět vše)

Napsat komentář