Nginx – vyslovováno „Engine X“ – je serverový nástroj s otevřeným zdrojovým kódem. Byl navržen tak, aby fungoval jako reverzní proxy, zachycoval požadavky klientů a směroval je na příslušný server.
Od té doby se rozrostla o funkce vyvažování zátěže, anonymizace a škálování. Má také funkce, které dokážou zpracovat statické požadavky na zdroje rychleji než Apache, což vám umožní strategicky vyvážit požadavky za účelem zlepšení výkonu a využití zdrojů.
Tato příručka vás provede nastavením a instalací Nginx na Ubuntu 18.04 (Bionic Beaver).
Předpoklady
- Systém se systémem Ubuntu 18.04
- Uživatelský účet s oprávněními sudo
- Nástroj pro správu balíčků apt, který je součástí výchozího nastavení
- UFW neboli UnComplicated Firewall je součástí výchozího nastavení
- Přístup SSH
Kroky k instalaci Nginx na Ubuntu
Aktualizujte softwarová úložiště
Přihlaste se k serveru přes SSH jako uživatel root
ssh [email protected]
Před instalací nového softwaru se důrazně doporučuje aktualizovat místní databázi softwaru. Aktualizace pomáhá zajistit, že instalujete nejnovější a nejlépe opravený dostupný software.
Zadejte následující:
sudo apt update
Nechte proces dokončit.
Nainstalujte Nginx na Ubuntu
Zadejte následující pro instalaci Nginx na Ubuntu :
sudo apt install nginx
To může nějakou dobu trvat, než systém stáhne softwarové balíčky a nainstaluje je. Než budete pokračovat, nechte jej dokončit.
Ověřte, že služba Nginx běží
Pomocí následujícího příkazu zkontrolujte stav služby Nginx:
sudo systemctl status nginx
Systém by měl vrátit seznam informací o službě Nginx. Aktivní řádek označuje, zda služba běží nebo ne. Pokud potřebujete spustit službu, použijte následující:
sudo systemctl start nginx
Místo startu můžete také použít následující příkazy:
sudo systemctl stop nginx
– zastaví službu Nginxsudo systemctl enable nginx
– umožňuje načíst Nginx při spuštěnísudo systemctl disable nginx
– zabraňuje načítání Nginx při spuštění
Povolit provoz Nginx přes bránu firewall
Seznam pravidel brány firewall můžete vygenerovat pomocí následujícího příkazu:
sudo ufw app list
To by mělo vygenerovat seznam profilů aplikací. V seznamu byste měli vidět čtyři položky související s Nginx:
Nginx full
– otevírá port 80 pro normální webový provoz a port 443 pro zabezpečený šifrovaný webový provozNginx HTTP
– Otevře port 80 pro normální webový provozNginx HTTPS
– Otevře port 443 pro šifrovaný webový provozOpenSSH
– Toto je konfigurace pro operace SecureShell, která vám umožní přihlásit se ke vzdálenému serveru prostřednictvím zabezpečeného, šifrovaného připojení
Chcete-li povolit normální provoz HTTP na váš server Nginx, použijte profil HTTP Nginx s následujícím příkazem:
sudo ufw allow ‘Nginx HTTP’
Chcete-li zkontrolovat stav vaší brány firewall, použijte následující příkaz:
sudo ufw status
Měl by zobrazit seznam druhu webového provozu HTTP povoleného různým službám. Nginx HTTP by měl být uveden jako ALLOW a Anywhere.
Otestujte Nginx ve webovém prohlížeči
Otevřete webový prohlížeč, například Firefox.
Do adresního řádku zadejte IP adresu vašeho systému nebo zadejte localhost .
Váš prohlížeč by měl zobrazit stránku, která vás přivítá v Nginx.
Definovat bloky serveru
Nginx používá konfigurační soubor k určení, jak se chová. Jedním ze způsobů použití konfiguračního souboru je definovat bloky serveru, které fungují podobně jako virtuální hostitel Apache.
Nginx je navržen tak, aby fungoval jako fronta pro více serverů, což se provádí vytvářením serverových bloků.
Ve výchozím nastavení je hlavní konfigurační soubor Nginx umístěn na /etc/nginx/nginx.conf. Soubory konfigurace bloků serveru jsou umístěny na adrese /etc/nginx/sites-available .
Chcete-li zobrazit obsah výchozího konfiguračního souboru bloku serveru, zadejte do terminálu následující příkaz:
sudo vi /etc/nginx/sites-available/default
Tím by se měl otevřít výchozí konfigurační soubor v textovém editoru Vi, který by měl vypadat nějak takto:
# Default server configuration
#
server {
listen 80 default_server;
listen [::]:80 default_server;
[...]
root /var/www/html;
# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html;
server_name _;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}
[...]
}
- příkazy naslouchat sdělte Nginxu, na kterých portech se má podívat na provoz
- Výchozí_server definuje to jako blok, který má být doručen, pokud klient nestanoví jinak
- Root určuje, který adresář obsahuje kořenový adresář pro web, který je obsluhován
- Název_serveru umožňuje zadat název pro konkrétní blok serveru, který se používá v pokročilejších konfiguracích
- Umístění umožňuje nasměrovat místo, kam by měl Nginx směrovat provoz
Vytvořte blok ukázkového serveru
Nastavit soubor HTML
Užitečné je projít si ukázkovou konfiguraci. V okně terminálu zadejte následující příkaz k vytvoření „testovacího“ adresáře, se kterým budete pracovat:
sudo mkdir /var/www/example
Vytvořte a otevřete základní soubor indexu HTML, který bude fungovat jako testovací webová stránka:
sudo vi /var/www/example/index.html
V textovém editoru Vi (pokud chcete, můžete nahradit preferovaný textový editor), zadejte následující:
Welcome to the Example Website!
Uložte soubor a ukončete.
Nastavit blok jednoduchého serveru
Pomocí následujícího příkazu vytvořte nový soubor bloku serveru pro náš testovací web:
sudo vi /etc/nginx/sites-available/example.com
Tím by se měl spustit textový editor Vi a vytvořit nový soubor bloku serveru.
Do textového souboru zadejte následující řádky:
server {
listen 80;
root /var/www/example;
index index.html;
server_name www.example.com;
}
To říká Nginxu, aby se podíval na /var/www/example adresář pro soubory, které mají sloužit, a pro použití souboru index.html, který jsme vytvořili jako úvodní stránku webu.
Uložte soubor a ukončete.
Vytvořte symbolický odkaz pro aktivaci bloku serveru
V okně terminálu zadejte následující příkaz:
sudo ln –s /s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled
Tím se vytvoří odkaz a aktivuje se váš testovací web v Nginx. Chcete-li použít změny, restartujte službu Nginx:
sudo systemctl restart nginx
Zahájit testování
V okně prohlížeče navštivte www.example.com.
Nginx by měl požadavek zachytit a zobrazit text, který jsme zadali v souboru HTML.