NGINX je vysoce výkonný webový server používaný zejména k distribuci statického obsahu a reverzní proxy. Díky své univerzálnosti lze NGINX použít v široké škále situací. V tomto návodu vám ukážeme, jak jej nainstalovat na server a také jak jej nakonfigurovat pro dvě či více domén.
Nejprve se připojte ke svému serveru pomocí SSH. Pokud ještě nemáte SSH připojení k dispozici, doporučujeme návod na bezpečné připojení pomocí SSH protokolu. Pokud se jedná o lokální server, pokračujte k dalšímu kroku a otevřete terminál serveru.
Instalace NGINX
Aktualizujte operační systém:
Zadejte následující příkaz k instalaci balíčku NGINX:
Po dokončení instalace spusťte službu a nastavte automatické spuštění po restartu:
$ sudo systemctl start nginx
$ sudo systemctl enable nginx
Konfigurace Firewall
Prvním krokem v nastavení firewallu ve vašem systému je povolení provozu HTTP a HTTPS.
Pokud používáte UFW firewall, máte pro NGINX k dispozici předinstalované profily. Pojďme se tedy podívat, jak je povolit.
Pro kontrolu dostupných profilů spusťte tento příkaz:
Na obrazovce se objeví seznam podobný tomuto:
Available applications:
Dovecot IMAP
Dovecot POP3
Dovecot Secure IMAP
Dovecot Secure POP3
Nginx Full
Nginx HTTP
Nginx HTTPS
OpenSSH
Postfix
Postfix SMTPS
Postfix Submission
Chcete-li povolit provoz HTTP (Port 80) a HTTPS (Port 443), použijte profil „Nginx Full“.
Informace o profilu lze získat takto:
$ sudo ufw app info "Nginx Full"
Na obrazovce se objeví informace o profilu:
Profile: Nginx Full
Title: Web Server (Nginx, HTTP + HTTPS)
Description: Small, but very powerful and efficient web server
Ports:
80,443/tcp
Po kontrole těchto informací povolte profil:
$ sudo ufw allow in "Nginx Full"
Nyní je konfigurace NGINX a firewallu dokončena. Chce-li otestovat webový server, navštivte adresu http://, v případě lokálního serveru pak http://localhost.
Pokud byl postup proveden správně, zobrazí se úvodní stránka NGINX.
Správné nastavení dvou domén/webových stránek
Níže je ukázáno, jak nakonfigurovat dva virtuální servery (nazývané "serverové bloky") tak, aby obsahovaly dva zcela oddělené webové prostory. V tomto příkladu použijeme dvě fiktivní domény:
-
• www.vasedomena.com
-
• www.vasedomena2.com
Oba A záznamy musí odkazovat na veřejnou IP adresu vašeho serveru.
Začněte tím, že vytvoříte všechny nezbytné složky k uložení veřejných souborů vašich webových stránek:
$ sudo mkdir /var/www
$ sudo mkdir /var/www/vasedomena.com
$ sudo mkdir /var/www/vasedomena.com/htdocs
$ sudo mkdir /var/www/vasedomena.com/logs
$ sudo mkdir /var/www/vasedomena2.com
$ sudo mkdir /var/www/vasedomena2.com/htdocs
$ sudo mkdir /var/www/vasedomena2.com/logs
U každé domény zkopírujte do složky htdocs výchozí stránku NGINX jako dočasný obsah:
$ sudo cp /usr/share/nginx/html/* /var/www/vasedomena.com/htdocs/
$ sudo cp /usr/share/nginx/html/* /var/www/vasedomena2.com/htdocs/
Nyní přistupte k samotné konfiguraci NGINX. NGINX čte všechny soubory .conf v adresáři /etc/nginx/conf.d/. Vytvořte dva soubory (pro každou doménu jeden) s názvem:
-
• vasedomena_com.conf
-
• vasedomena2_com.conf
V textovém editoru zapište do souboru vasedomena_com.conf následující konfiguraci:
server {
listen 80;
server_name vasedomena.com *.vasedomena.com;
root /var/www/vasedomena.com/htdocs;
access_log /var/www/vasedomena.com/logs/access.log main;
error_log /var/www/vasedomena.com/logs/error.log warn;
}
Podobně upravte také soubor vasedomena2_com.conf:
server {
listen 80;
server_name vasedomena2.com *.vasedomena2.com;
root /var/www/vasedomena2.com/htdocs;
access_log /var/www/vasedomena2.com/logs/access.log main;
error_log /var/www/vasedomena2.com/logs/error.log warn;
}
Kromě nastavení root složky pro soubory virtuální domény doporučujeme provést také konfiguraci cest access logu a error logu pro každou doménu zvlášť. Běžně NGINX ukládá všechny logy do složky /var/log/nginx/, ale v případě použití více domén může být výsledek matoucí.
Logy mohou postupem času zabírat velké množství místa, proto je nutné nastavit rotaci souborů k mazání nejstaršího obsahu. K tomu využijeme funkci logrotate.
Pro přidání nových logů do nastavení logrotate upravte soubor /etc/etc/logrotate.d/nginx:
/var/log/nginx/*log {
create 0644 nginx nginx
daily
rotate 10
missingok
notifempty
compress
sharedscripts
postrotate
/bin/kill -USR1 `cat /run/nginx.pid 2>/dev/null` 2>/dev/null || true
endscript
}
Ve /var /log/nginx již existuje konfigurace pro soubory NGINX. Upravte první část souboru následovně:
/var/log/nginx/*log
/var/www/*/logs/* {
...
}
Po provedení této změny bude logrotate spravovat všechny soubory ve složkách /var/www/vasedomena.com a /var/www/vasedomena2.com a všech ostatních. Nemusíte se tedy starat ani o domény, které případně přidáte v budoucnu.
Po dokončení proveďte restart:
$ sudo systemctl reload nginx