NGINX je vysoce výkonný webový server používaný zejména ke správě statických souborů a jako reverzní proxy. díky své všestrannosti lze NGINX použít v jakékoli situaci. V této příručce uvidíte, jak jej nainstalovat na váš server a jak jej nakonfigurovat pro dvě nebo více domén.
Nejprve se připojte k serveru prostřednictvím připojení SSH. Pokud jste tak ještě neučinili, doporučujeme se podle našeho průvodce bezpečně připojit pomocí SSH. V případě lokálního serveru přejděte k dalšímu bodu a otevřete terminál svého serveru.
Instalace NGINX
Aktualizujte distribuční repozitáře, abyste měli jistotu, že stáhnete nejnovější verzi NGINX:
$ sudo apt update
Spusťte následující příkaz k instalaci balíčku NGINX:
$ sudo apt install nginx
Po dokončení instalace spusťte službu a nainstalujte ji do systému:
$ sudo systemctl start nginx
$ sudo systemctl enable nginx
Konfigurace brány firewall
V případě brány firewall ve vašem systému ji nastavte tak, aby povolovala provoz HTTP a HTTPS pro váš počítač.
Při použití brány firewall UFW jsou pro NGINX k dispozici předinstalované profily. Pojďme se tedy podívat, jak je povolit.
Chcete-li zkontrolovat dostupné profily nainstalované na firewallu UFW, spusťte tento příkaz:
$ sudo ufw app list
Na obrazovce se zobrazí seznam podobný následujícímu:
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“.
Zkontrolujte informace o svém profilu, jak je uvedeno níže:
$ sudo ufw app info "Nginx Full"
Objeví se popis profilu na obrazovce:
Profile: Nginx Full
Title: Web Server (Nginx, HTTP + HTTPS)
Description: Small, but very powerful and efficient web server
Ports:
80,443/tcp
Po kontrole profilu budete připraveni jej povolit:
$ sudo ufw allow in "Nginx Full"
V tomto okamžiku je konfigurace NGINX a firewallu dokončena. Otestujte webový server na adrese http://
Správná konfigurace dvou domén/webových stránek:
Níže je ukázáno, jak nakonfigurovat dva virtuální hostitele (nazývané "bloky serveru"), aby měli dva zcela oddělené webové prostory. V tomto příkladu použijeme dvě fiktivní domény:
www.yourdomain.com
www.yourdomain2.com
Oba záznamy A musí ukazovat na veřejnou IP adresu vašeho serveru.
Začněte vytvořením všech nezbytných složek pro uložení veřejných souborů vašich webových stránek:
$ sudo mkdir /var/www
$ sudo mkdir /var/www/yourdomain.com
$ sudo mkdir /var/www/yourdomain.com/htdocs
$ sudo mkdir /var/www/yourdomain.com/logs
$ sudo mkdir /var/www/yourdomain2.com
$ sudo mkdir /var/www/yourdomain2.com/htdocs
$ sudo mkdir /var/www/yourdomain2.com/logs
Jako dočasný obsah zkopírujte výchozí stránku NGINX do složek htdocs každé domény:
$ sudo cp /usr/share/nginx/html/* /var/www/yourdomain.com/htdocs/
$ sudo cp /usr/share/nginx/html/* /var/www/yourdomain2.com/htdocs/
Nyní přejděte ke skutečné konfiguraci NGINX. NGINX obvykle čte všechny soubory .conf v adresáři /etc/nginx/conf.d/, pokračujte vytvořením dvou souborů (jeden na doménu) a pojmenujte je:
vasedomena_com.conf
vasedomena2_com.conf
Použijte svůj oblíbený textový editor k zápisu následující konfigurace do souboru yourdomain_com.conf:
server {
listen 80;
server_name yourdomain.com *.yourdomain.com;
root /var/www/yourdomain.com/htdocs;
access_log /var/www/yourdomain.com/logs/access.log main;
error_log /var/www/yourdomain.com/logs/error.log warn;
}
Je zřejmé, že podobnou konfiguraci musíte použít také pro yourdomain2_com.conf:
server {
listen 80;
server_name yourdomain2.com *.yourdomain2.com;
root /var/www/yourdomain2.com/htdocs;
access_log /var/www/yourdomain2.com/logs/access.log main;
error_log /var/www/yourdomain2.com/logs/error.log warn;
}
Kromě nastavení kořenové složky pro soubory virtuální domény existují také nastavení pro konfiguraci cest k souborům protokolu (přístup i chyba), aby každý měl jeden protokol doména. Normálně NGINX ukládá všechny protokoly do adresáře /var/log/nginx/, ale v případě více domén může být výsledek matoucí.
Protokoly se mohou časem příliš zvětšit, pokud se změní jejich cesta. Je proto nutné nastavit rotaci souborů, aby se odstranil nejstarší obsah. K tomu použijte software logrotate.
Chcete-li přidat nové soubory protokolu v 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
}
Jak můžete vidět, v /var /log/nginx již existuje konfigurace pro soubory NGINX. Pokračujte úpravou první části 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 protokolů jak /var/www/mydomain.it, tak /var/www/yourdomain.com (a všech dalších), aniž by muset se starat o jakoukoli další doménu, která by mohla být přidána v budoucnu.
Po dokončení restartujte službu, aby se změny projevily:
$ sudo systemctl reload nginx