V této příručce prozkoumáme, jak používat nginx v Ubuntu 20.04, tj. jak nainstalovat nginx a nakonfigurovat nginx tak, aby obsluhoval virální web.
Instalace Nginx
aktualizujte náš místní index balíčků, abychom měli přístup k nejnovějším výpisům balíčků
sudo apt update
Nainstalujte nginx
sudo apt install nginx
Aktualizujte bránu firewall
Seznam dostupných ufw aplikací:
sudo ufw app list
Ukázkový výstup:
Available applications:
Nginx Full
Nginx HTTP
Nginx HTTPS
OpenSSH
Uvedené profily Nginx:
Nginx Full
– Jak http – 80, tak https – 443Nginx HTTP
– pouze http provoz 80Nginx HTTPS
– Pouze https provoz 443 – Provoz šifrovaný TLS/SSL
Povolte požadovaný profil – v našem případě http i https:
sudo ufw allow 'Nginx Full'
Ověřte změnu
sudo ufw status
Výše uvedený příkaz vypíše, který provoz je povolen.
Konfigurace nginx
Zkontrolujte nainstalovanou verzi
sudo apt list --installed | grep nginx
Zkontrolujte systemd service
sudo systemctl status nginx
Měli byste vidět tento výstup ukazující, že nginx běží
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2021-07-30 14:07:33 UTC; 2min 42s ago
Docs: man:nginx(8)
Main PID: 4684 (nginx)
Tasks: 5 (limit: 9257)
CGroup: /system.slice/nginx.service
├─4684 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
├─4685 nginx: worker process
├─4686 nginx: worker process
├─4687 nginx: worker process
└─4688 nginx: worker process
Jul 30 14:07:33 frhb64566ds systemd[1]: Starting A high performance web server and a reverse proxy server...
Jul 30 14:07:33 frhb64566ds systemd[1]: Started A high performance web server and a reverse proxy server.
Abyste zajistili, že služba nginx bude vždy spuštěna i po restartu, použijte tento příkaz systemnd k povolení:
sudo systemctl enable nginx
Ke správě nginx můžete použít tyto další příkazy systemd:
# To start the service
sudo systemctl start nginx
# To restart the service
sudo systemctl restart nginx
# To reload the service config
sudo systemctl reload nginx
# To stop the service config
sudo systemctl restart nginx
# To disable the service config
sudo systemctl restart nginx
Chcete-li potvrdit, že nginx skutečně běží a je dosažitelný, použijte tento příkaz:
curl http://server_ip/
kde server_ip
je ip vašeho serveru. Pokud z nějakého důvodu neznáte veřejnou IP svého serveru, použijte toto ke kontrole:
curl -4 icanhazip.com
Potom:
curl http://178.170.10.54/
Měli byste získat výchozí stránku nginx.
Poskytování jednoduché statické stránky nginx
Podívejme se na příklad poskytování statické stránky pomocí nginx. Statická stránka je html a css, která nepotřebuje žádné vykreslování na straně serveru. Použijeme příklad domény your.domain.com
v našem případě.
Kroky:
-
Vytvořte adresář pro uložení našeho statického obsahu (budeme používat
/var/www/your.domain.com
)sudo mkdir -p /var/www/your.domain.com
-
Ujistěte se, že vytvořený adresář je přístupný aktuálnímu uživateli
sudo chown -R ${USER}:${USER} /var/www/your.domain.com sudo chmod -R 755 /var/www/your.domain.com
-
Přidejte ukázkový soubor do adresáře (
/var/www/your.domain.com/index.html
)cat > /var/www/your.domain.com/index.html <<EOF <html> <head> <title>Hola from your.domain.com!</title> </head> <body> <h1>Hey!</h1> <p>Our site <i>your.domain.com</i> is working as expected.</p> </body> </html> EOF
-
Vytvořte konfiguraci nginx v adresáři
/etc/nginx/conf.d
kde nginx hledá konfigurace, které má zahrnout při poskytování. Vytvoříme soubor/etc/nginx/conf.d/your.domain.com.conf
s požadovaným obsahem.
Použijte tento příkaz:
cat > /etc/nginx/conf.d/your.domain.com.conf <<EOF
server {
listen 80;
server_name your.domain.com;
root /var/www/your.domain.com;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
}
EOF
-
Otestujte, abyste se ujistili, že v žádném ze souborů nginx
nejsou žádné syntaktické chybysudo nginx -t
-
Pokud nejsou žádné chyby, restartujte nginx a znovu načtěte konfiguraci
sudo systemctl restart nginx
-
Chcete-li zajistit, aby se vaše doména mohla dostat na server, upravte konfiguraci DNS tak, aby byly záznamy A webu
your.domain.com
ukazuje na IP serveru.
Vaše stránky by nyní měly být v provozu. Potvrďte na stránce http://vase.domena.com
Důležité soubory a adresáře Nginx v Nginx
-
/var/www/html
:Toto je adresář webového obsahu. Toto obsahuje výchozí obsah stránky v souboruindex.nginx-debian.html
. Tato stránka se vykreslí, když není definován žádný hostitel serveru se specifixem. -
/etc/nginx
:Toto obsahuje všechny konfigurační soubory nginx. -
/etc/nginx/nginx.conf
:Toto je hlavní globální konfigurační soubor nginx -
/etc/nginx/sites-available/
:Adresář, do kterého lze ukládat bloky serveru pro jednotlivé lokality. Nginx nebude používat konfigurační soubory nalezené v tomto adresáři, pokud nejsou propojeny ssites-enabled
adresář. Veškerá konfigurace bloků serveru se obvykle provádí v tomto adresáři a poté se aktivuje propojením s jiným adresářem. -
/etc/nginx/sites-enabled/
:Adresář, kde jsou uloženy povolené bloky serveru pro jednotlivé lokality. Obvykle jsou vytvořeny odkazem na konfigurační soubory nalezené v adresáři sites-available. -
/etc/nginx/snippets
:Tento adresář obsahuje konfigurační fragmenty, které mohou být zahrnuty jinde v konfiguraci Nginx. Potenciálně opakovatelné konfigurační segmenty jsou dobrými kandidáty pro refaktoring do úryvků. -
/var/log/nginx/access.log
:Každý požadavek na váš webový server je zaznamenán v tomto souboru protokolu, pokud není Nginx nakonfigurován tak, aby to dělal jinak. -
/var/log/nginx/error.log
:Veškeré chyby Nginx budou zaznamenány do tohoto protokolu.