• Digitální příslušenství
  • Server
  • Digitální život
  • Zásady ochrany osobních údajů
  • Kontaktujte nás
  1. Domov
  2. Článek
  3. Pochopení výchozího virtuálního hostitele Nginx (nebo serveru ...

Pochopení výchozího virtuálního hostitele Nginx (nebo serveru ...

Rsdaa 09/12/2021 1009

Porozumění výchozí konfiguraci virtuálního hostitele (nebo serveru) Nginx

Po instalaci Nginx je jednou z prvních věcí, kterou musíte udělat, zkontrolovat, zda běží v pořádku.

Jedním ze způsobů, jak toho dosáhnout, je použít váš prohlížeč k odeslání požadavku HTTP k otestování.

Pokud jste na místní počítač nainstalovali Nginx, můžete do adresního řádku prohlížeče zadat http://localhost nebo http://127.0.0.1.

Když jste nastavili Nginx na samostatném počítači ve vaší domácí síti, můžete také zadat http:// do adresního řádku vašeho prohlížeče. Například v tom, jak hostit web WordPress na Raspberry Pi s Raspbian Buster Lite a Nginx, jsem zadal http://192.168.1.114 jako umístění pro testování serveru Nginx běžícího na mém Raspberry Pi.

Ať je to http://localhost, http://127.0.0.1, http://, na obrazovce prohlížeče vždy uvidíte tuto stránku:

V případě, že vás zajímá, proč se váš Nginx chová tímto způsobem, tento příspěvek vysvětlí, co výchozí konfigurace virtuálního hostitele Nginx dělá s Nginx.

Kde se nachází váš konfigurační soubor Nginx?

Abychom věděli, co dělá výchozí konfigurace virtuálního hostitele Nginx, musíme najít soubor, který je obsahuje. Protože Nginx zpracovává konfigurace ze souboru s názvem nginx.conf, můžeme jej najít pomocí příkazu find.

Vzhledem k tomu spusťte ve svém terminálu následující příkaz a vyhledejte nginx.conf:

sudo find / -name nginx.conf

Soubor obvykle najdete v /usr/local/nginx/conf, /etc/nginx nebo /usr/local/etc/nginx.

Hledání výchozího konfiguračního souboru dodaného s vaší instalací Nginx

Jakmile víte, kde je nginx.conf, můžete otevřít konfigurační soubor a zkontrolovat jeho obsah. Například na operačním systému založeném na Debianu spustím následující příkaz pro kontrolu hlavního konfiguračního souboru:

cat /etc/nginx/nginx.conf

Když byl tento příkaz spuštěn na mém Raspbian Buster Lite, dostal jsem následující obsah:

uživatel www-data;worker_processes auto;pid /run/nginx.pid;include /etc/nginx/modules-enabled/*.conf;events {worker_connections 768;# multi_accept on;}http {### Základní nastavení##sendfile on;tcp_nopush on;tcp_nodelay on;keepalive_timeout 65;types_hash_max_size 2048;# server_tokens off;# server_names_hash_bucket_size 32;# server_name_in_redirect off;include /etc/nginx#/mime.SL ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Rušení SSLv3, ref: POODLEssl_prefer_server_ciphers on;### Nastavení protokolování##access_log /var/log/nginx/access.log;error_log /var/log/nginx/error.log;### Nastavení Gzip##gzip on; # gzip_vary on;# gzip_proxied any;# gzip_comp_level 6;# gzip_buffers 16 8k;# gzip_http_version 1.1;# gzip_types text/plain text/css application/json application/javascript text/xml application/xml text application/javscript; ### Konfigurace virtuálního hostitele##include /etc/nginx/conf.d/*.conf;include /etc/nginx/sites-enabled/*;#mail {## Viz ukázkový ověřovací skript na:## http: //wiki.nginx.org/ImapAuthenticateWithApachePhpScript# ## auth_http localhost/auth.php;## pop3_capabilities "TOP" "USER";## imap_capabilities "IMAP4rev1" "UIDPLUS";# #server {#0;poslouchejte localhost:1 protokol pop3;#proxyon;## #server {#listen localhost:143;#protocol imap;#proxyon;##}#}

Protože prověřujeme výchozí konfigurace virtuálního hostitele Nginx, podívejte se do sekce komentované s virtuálním hostitelem Konfigurace, abyste viděli, co se děje. V případě, že vás to zajímá, komentáře v konfiguracích Nginx začínají znakem #.

Vzhledem k tomu vidíme, že hlavní konfigurační soubor bude obsahovat:

jakýkoli konfigurační soubor končící na .conf v adresáři /etc/nginx/conf.d/.všechny konfigurační soubory v adresáři /etc/nginx/sites-enabled/.

Na základě těchto bodů se pak můžeme podívat do adresářů /etc/nginx/conf.d/ a /etc/nginx/sites-enabled/ pro výchozí konfigurační soubor.

Porozumění výchozímu konfiguračnímu souboru Nginx

V těchto dvou adresářích byste měli být schopni najít soubor, který obsahuje výchozí konfigurace virtuálního hostitele. V případě mého operačního systému Raspbian Buster Lite jsem našel symbolický odkaz /etc/nginx/sites-enabled/default, který ukazuje na /etc/nginx/sites-available/default. Když máme takovou organizaci souborů, můžeme odstranit výchozí konfigurace Nginx, aniž bychom smazali skutečný soubor.

Spusťte následující příkaz, abyste viděli, co je ve výchozím konfiguračním souboru Nginx:

cat /etc/nginx/sites-available/default

Po spuštění výše uvedeného příkazu byste měli získat něco podobného následujícímu:

### Měli byste se podívat na následující adresy URL, abyste porozuměli # konfiguračním souborům Nginx, abyste mohli plně uvolnit sílu Nginx.# https://www.nginx.com/resources/wiki/start/# https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/# https://wiki.debian.org/Nginx/DirectoryStructure## Ve většině případů administrátoři tento soubor ze stránek odstraní- povoleno/ a# ponechat jej jako referenci na stránkách – k dispozici, kde bude nadále# aktualizováno týmem pro balení nginx.## Tento soubor automaticky načte konfigurační soubory poskytované jinými# aplikacemi, jako je Drupal nebo WordPress. Tyto aplikace budou zpřístupněny# pod cestou s tímto názvem balíčku, jako je /drupal8.## Podrobnější příklady naleznete v /usr/share/doc/nginx-doc/examples/.### Výchozí konfigurace serveru#server {poslouchat 80 default_server;poslouchat [::]:80 default_server;# Konfigurace SSL## poslouchat 443 ssl default_server;# poslouchat [::]:443 ssl default_server;## Poznámka: Měli byste zakázat gzip pro provoz SSL.# Viz: https://bugs.debian.org/773332## Přečtěte si ssl_ciphers, abyste zajistili bezpečnou konfiguraci.# Viz: https://bugs.debian.org/765782## Vlastní podepsané certifikáty generované balíčkem ssl-cert# Nepoužívejte je na produkčním serveru!## include snippets/snakeoil.conf;root /var/www/html;# Přidejte index.php do seznamu, pokud používáte PHPindex index.html index.htm index.nginx- debian.html;název_serveru _;umístění / {# Nejprve se pokuste obsloužit požadavek jako soubor, poté# jako adresář, poté se vraťte k zobrazení 404.try_files $uri $uri/ =404;}# předání PHP skriptů na FastCGI server# #location ~ \.php$ {#include snippets/fastcgi-php.conf;### S php-fpm (nebo jinými unixovými sockety):#fastcgi_pass unix:/run/php/php7.3-fpm.sock;# # S php-cgi (nebo jinými tcp sockety):#fastcgi_pass 127.0.0.1:9000;#}# odepřít přístup k souborům .htaccess, pokud kořen dokumentu Apache# souhlasí s jedním ##umístěním nginx ~ /\.ht {#deny all;#}# Konfigurace virtuálního hostitele pro example.com## Můžete to přesunout do jiného souboru v části sites-available/ a symbolicky to propojit# to sites-enabled/, abyste to povolili.##server {#listen 80;# poslouchat [::]:80;##server_name example.com;##root /var/www/example.com;#index index.html;##location / {#try_files $uri $uri/ =404;#} #}

Když se podíváme na informace uvedené v tomto souboru, můžeme se o serveru Nginx dozvědět hodně. Pokud chcete být s Nginxem zběhlejší, budete chtít získat přístup ke zdrojům uvedeným v komentářích.

Cílem tohoto příspěvku je však pochopit, co výchozí konfigurace virtuálního hostitele (nebo serveru) Nginx dělá s naším serverem. Zaměřme se tedy pro tuto chvíli na to.

Z konfiguračního souboru můžeme vidět, že existuje pouze jeden blok serveru, který není zakomentován. Toto je tedy konfigurační blok, který Nginx převezme.

První dva nekomentované příkazy říkají Nginxu, aby naslouchal síťovým paketům na portu 80 počítače, na kterém běží:

listen 80 default_server;listen [::]:80 default_server;

První příkaz je pro případ síťového rozhraní s adresou IPv4 a druhý pro případ síťového rozhraní s adresou IPv6. Kromě toho parametr default_server uvádí, že tento blok serveru bude použit jako výchozí konfigurace pro Nginx.

Další,

root /var/www/html;

říká Nginxu, aby se podíval do adresáře /var/www/html na serveru, aby hledal soubory pro obsluhu HTTP požadavků nasměrovaných na tento blok serveru.

Poté

server_name _;

označí blok serveru jako blok "chytit vše". Kdykoli Nginx nemůže najít žádný blok serveru, který by odpovídal příchozímu požadavku HTTP, tento blok serveru bude použit pro rozhodnutí, jak tento požadavek obsloužit.

Nakonec

umístění / {# Nejprve se pokuste obsloužit požadavek jako soubor, poté# jako adresář, pak se vrátíte k zobrazení 404.try_files $uri $uri/ =404;}

přiměje Nginx, aby hledal soubor uvnitř /var/ www/html, který se vrátí jako odpověď HTTP na příchozí požadavek HTTP. V případě, že není co vrátit, Nginx vrátí odpověď HTTP se stavem 404.

Jak se ale vrátí uvítací stránka Nginx, když se pokusíme získat přístup ke kořenové adrese URL? Pokud budete sledovat konfigurace z hlavního souboru, uvidíte následující konfiguraci:

index index.html index.htm index.nginx-debian.html;

To způsobí, že Nginx vrátí jeden z následujících souborů v kořenovém adresáři, pokud je k dispozici:

index.htmlindex.htmindex.nginx-debian.html

Vzhledem k tomu, že uvnitř /var/www/html je soubor s názvem index.nginx-debian.html, obsah souboru se vrátí, když se pokusíme získat přístup k kořenová adresa URL.


PREV: Final Fantasy XIV: A Realm Reborn Servery, převody a další ...

NEXT: Cross Server Party

Populární články

Žhavé články

Navigační seznamy

Zpět na začátek