Nginx

Jak přesměrovat adresy URL v Nginx

Jak přesměrovat adresy URL v Nginx
Nginx je lehký webový server, který se často používá také jako reverzní proxy, webový server a nástroj pro vyrovnávání zatížení. Nginx ve výchozím nastavení přichází s mnoha užitečnými funkcemi a při instalaci lze přidat další jako moduly. Tato příručka má v úmyslu předvést, jak používat Nginx k přesměrování adres URL do různých směrů. Přestože Nginx poskytuje nepřeberné množství funkcí pro přesměrování URL, tato příručka používá zlomek z nich, protože je záměrem naučit při přesměrování URL pouze ty základní. Oblasti obsažené v této příručce jsou přesměrování nezabezpečených adres URL (port 80) na zabezpečenou verzi, přesměrování požadavku na IP na název domény a nakonec přesměrování dalších subdomén, domén na hlavní doménu.

Předběžné požadavky

Nejprve tato příručka předpokládá, že uživatel má v počítači nainstalovaného správného klienta SSH, pokud ne, pokračujte a nainstalujte Putty jako klienta, pak použijte následující příkazy. Kromě toho je vyžadován také Nginx, Nano editor.

  1. Chcete-li nainstalovat textový editor Nano, zadejte následující příkazy. První příkaz pomáhá načíst nejnovější balíčky z úložišť a druhý příkaz nainstaluje nejnovější verzi nano textového editoru.
sudo apt-get aktualizace
sudo apt-get install nano
  1. V okně terminálu zadejte následující příkaz a změňte aktuální adresář na adresář nginx.
cd / etc / nginx / sites-available
  1. Nyní zadejte nano výchozí nebo název souboru přidruženého k doméně pro změnu nastavení domény.
  2. Od této chvíle pokračujte jedním z následujících segmentů.

Přesměrování z HTTP (port 80)

Google, Bing a mnoho dalších vyhledávačů dnes upřednostňuje weby se šifrovaným připojením. Když je spojení mezi klientem a serverem šifrováno, jsou data přenášená prostřednictvím tohoto konkrétního připojení zabezpečená, a tedy třetí strany k těmto datům nemají přístup. Pokud připojení není šifrováno, jsou takové weby nezabezpečené, a tím ohrožuje bezpečnost dat. Nezabezpečený web používá k poskytování svých služeb veřejnosti port 80. Bohužel, ve výchozím nastavení se webový prohlížeč připojuje k portu 80, protože webový server předpokládá, že je to to, co klient ve výchozím nastavení chce, a proto musí být požadavek přesměrován na zabezpečenou verzi. Existuje několik způsobů, jak to udělat s Nginx.

Metoda 1

Pokud je aktuální název domény k dispozici a pokud přijímá požadavky od klientů, lze je přesměrovat do jiné domény pomocí následujícího fragmentu kódu. Jednoduše jej zkopírujte do výchozího souboru nebo do souboru domény.

Výchozí parametr serveru určuje, že tento blok serveru je výchozím serverem, a proto všechny požadavky na port 80 ve výchozím nastavení provedou tento blok serveru a poté následuje zbytek. Závorka znamená, že také zachycuje požadavky ze sítí ipv6. Návrat 310 znamená, že přesměrování je trvalé, a proto je spolu s ním předán odkazový džus.

server
poslouchat 80 default_server;
poslouchat [::]: 80 default_server;
server_name doména.com www.doména.com;
vrátit 301 https: // doména.com $ request_uri;

Metoda 2

Pokud k aktuálnímu serveru není připojen žádný web a požadavkem je přesměrování jakýchkoli požadavků na port 80, lze použít následující blok serveru. Zkopírujte jej do výchozího souboru, jak je uvedeno výše. Zde _ (podtržítko) označuje jakoukoli doménu. Stejně jako dříve, parametr default_server, i zde lze použít závorky (pro adresy IPv6) jako volitelné atributy.

server
poslouchat 80 default_server;
název_serveru _;
vrátit 301 https: // $ host $ request_uri;

Metoda 3

Následující fragment kódu znamená, že pokud připojení není šifrováno, což znamená, že port 80 přijímá požadavky, pak jsou přesměrovány na zabezpečenou verzi zadané domény. Toto by mělo být zkopírováno kdekoli v bloku serveru , ale za parametrem název_serveru.

if ($ schéma != "https")
vrátit 301 https: // $ host $ request_uri;

Přesměrování z adresy IP

Na rozdíl od sdíleného hostitele mají dedikované servery i virtuální privátní servery vždy přidělenou vyhrazenou adresu IP. Pokud je webový server nakonfigurován s Nginx s podtržítkem (což znamená, že server zpracovává každý požadavek), pak jakýkoli požadavek na IP adresu získá přístup také na web. Mít přístup na web pomocí IP adresy není něco, co by každý webový mistr chtěl z různých důvodů. Na druhou stranu, pokud je zpracován každý požadavek, uživatelé se zlými úmysly mohou k webovému serveru přidružit libovolnou náhodnou doménu, což není dobré pro název značky nebo firmy, a proto je důležité zpracovávat pouze požadavky na konkrétní domény nebo a IP adresa. Tento segment v takových případech ukazuje, jak zpracovat požadavky na IP adresu webového serveru. Použití tohoto bloku kódu spolu s jedním z výše uvedených bloků kódu (s výjimkou metody 2 předchozího řešení) zajišťuje, že každý požadavek na obě domény a IP je přesměrován do požadovaného cíle.

Jak bylo řečeno výše, zkopírujte následující fragment kódu do výchozího souboru Nginx (předběžné požadavky, 3. krok). Namísto použití názvu domény v parametru název_serveru jednoduše použijte IP adresu serveru a v dalším řádku použijte „návrat 301 domény“ na místo, kde je požadavek přesměrován. Nyní, když je požadavek na tuto konkrétní IP adresu přijat na server, je přesměrován na uvedenou doménu. Nejlepším příkladem je, když náhodný uživatel zadá IP webového serveru pro přímý přístup k webu. Pokud následující fragment kódu není uveden nikde ve výchozím souboru, nebude zpracován žádný požadavek na IP; uživatelé proto nemohou přistupovat na web pomocí adresy IP.

server
poslouchat 80;
poslouchat [::]: 80;
poslouchat 443 SSL http2;
poslouchat [::]: 443 ssl http2;
název_serveru 192.168.1.1;
vrátit 301 https: // nucuta.com;

Přesměrování z jakékoli jiné domény

Toto řešení je stejné jako první řešení této příručky, kromě toho také přesměruje požadavky na port 443 webového serveru, což znamená, že zabezpečené i nezajištěné požadavky jsou přesměrovány na uvedenou doménu v parametru return. Jak již bylo řečeno, jednoduše to zkopírujte do výchozího souboru.

server
poslouchat 80;
poslouchat [::]: 80;
poslouchat 443 SSL http2;
poslouchat [::]: 443 ssl http2;
server_name doména.com www.doména.com;
vrátit 301 https: // nucuta.com;

Finalizace

Po provedení jednoho z výše uvedených řešení je nutné zkompilovat soubor nginx, aby se projevila jeho konfigurace. Výchozí soubor však musí být před kompilací otestován, protože brání zhroucení webového serveru, pokud došlo k chybě v konfiguraci.

  1. Jednoduše použijte následující příkaz v terminálu Linux k otestování výchozího konfiguračního souboru, výsledek je dobrý, pokračujte dalším krokem.
sudo nginx -t
  1. K restartování webového serveru Nginx použijte jeden z následujících příkazů. Příkaz závisí na názvu a verzi distribuce Linuxu.
sudo systemctl restart nginx
sudo service nginx reload
sudo / etc / init.znovu načíst d / nginx
Hry Užitečné nástroje pro hráče Linuxu
Užitečné nástroje pro hráče Linuxu
Pokud rádi hrajete hry na Linuxu, je pravděpodobné, že jste ke zlepšení herního zážitku použili aplikace a nástroje jako Wine, Lutris a OBS Studio. Kr...
Hry HD remasterované hry pro Linux, které nikdy dříve neměly vydání Linuxu
HD remasterované hry pro Linux, které nikdy dříve neměly vydání Linuxu
Mnoho vývojářů a vydavatelů her přichází s HD remasterem starých her, aby prodloužili životnost franšízy, prosím fanoušky, kteří požadují kompatibilit...
Hry Jak používat AutoKey k automatizaci linuxových her
Jak používat AutoKey k automatizaci linuxových her
AutoKey je nástroj pro automatizaci stolních počítačů pro systémy Linux a X11, programovaný v programech Python 3, GTK a Qt. Pomocí jeho funkcí skript...