GNU/Linux >> Znalost Linux >  >> Linux

Jak přesměrovat HTTP na HTTPS v Nginx

Úvod

Nginx (vyslovuje se „Engine-X“) je webový server a proxy aplikace založená na Linuxu. Nginx je výkonný nástroj pro přesměrování a správu webového provozu. Lze jej snadno nakonfigurovat tak, aby přesměroval nešifrovaný webový provoz HTTP na šifrovaný server HTTPS.

Tento průvodce vám ukáže, jak přesměrovat HTTP na HTTPS pomocí Nginx.

Předpoklady

  • Server Linux se systémem Nginx
  • Uživatelský účet s sudo privilegia
  • Vzdálené přihlášení k webovému serveru (volitelné, nutné pouze v případě, že nepracujete přímo na svém webovém serveru)
  • Přístup k terminálu/příkazovému řádku (Ctrl-Alt-T nebo Ctrl-Alt-F2)

Přesměrování HTTP na HTTPS

Chcete-li vynutit přesměrování HTTP na HTTPS, musíte upravit konfigurační soubor Nginx.

Ve většině případů můžete soubor najít v /etc/nginx/sites-available adresář. Pokud jej nenaleznete, vyhledejte jej zde:/etc/nginx/nginx.conf, /usr/local/nginx/conf nebo /usr/local/etc/nginx .

Jakmile najdete konfigurační soubor Nginx, otevřete jej v textovém editoru příkazem:

sudo nano /etc/nginx/sites-available/server.conf

Nahraďte umístění skutečným umístěním a názvem vašeho konfiguračního souboru.

Jakmile je konfigurační soubor otevřen pro úpravy, vložte jeden z níže uvedených bloků kódu. Po dokončení úprav soubor uložte a ukončete. Poté restartujte službu Nginx pomocí následujícího příkazu:

sudo service nginx restart

Nginx přesměruje veškerý provoz HTTP na HTTPS

Otevřete konfigurační soubor Nginx pro úpravy a vložte následující kód:

server {

    listen 80 default_server;


    server_name _;


    return 301 https://$host$request_uri;

}

Zde je rozpis příkazů:

  • Listen 80 :To dává systému pokyn, aby zachytil veškerý provoz HTTP na portu 80
  • Server_name _; :Toto bude odpovídat libovolnému názvu hostitele
  • Return 301 :Toto sděluje prohlížeči (a vyhledávačům), že se jedná o trvalé přesměrování
  • https://$host$request_uri :Toto je krátký kód pro specifikaci HTTPS verze čehokoli, co uživatel zadal

Po úpravách se veškerý provoz výchozího serveru HTTP přesměruje na HTTPS.

Přesměrování konkrétního webu

Můžete mít více serverů, ale pouze některé z nich mohou vyžadovat HTTPS. Zadejte název serveru do bloku serveru pro přesměrování vybraného provozu:

server {

    listen 80 default_server;


    server_name my_app.com;


    return 301 https://my_app.com$request_uri;

}

Nahraďte název my_app.com s názvem serveru, který hodláte přesměrovat. Můžete také chtít přidat další weby přidáním dalšího bloku serveru. Jednoduše zkopírujte kód a změňte název serveru.

Přijímat pouze připojení SSL

Přidejte tento kód, abyste si byli jisti, že server bude přijímat pouze připojení SSL na portu 443:

server {

    listen 443 ssl default_server;

    server_name my_app.com;

}


server {

    listen 443 ssl;

    server_name my_website.com;

}

Tento blok kódu vytvoří dvě webové stránky, my_app.com a my_website.com , chcete-li přijímat pouze připojení SSL. Další weby můžete přidat pomocí dalších bloků serveru.

Přesměrování stránky Nginx

Přepisovací kód můžete použít k rychlé správě přesměrování 301 (trvalé) nebo 302 (dočasné):

Location /index.html {

       rewrite ^/oldURL$ https://www.your_domain.com/newURL redirect;

}

Většinou bude umístění index.html , ale můžete zadat libovolnou cestu/vzor.

Všimněte si, že rewrite příkaz by měl být používán pouze s přesměrováním 301 nebo 302.

Jak přesměrovat doménu pomocí Nginx

To je užitečné, pokud jste změnili rozšíření z marnosti (např. .biz nebo .net) na standardní adresu .com. Lze jej také použít k přesměrování ze starého názvu domény na nový název domény.

server {

    listen 80;

    listen 443 ssl;

    server_name www.old_company.com;

    return 301 $scheme://www.new_company.com$request_uri;

}

Ve většině případů return příkaz je upřednostňován před příkazem přepis.

Přesměrování z webu www na web bez www

Tento proces je podobný standardnímu přesměrování stránky:

server {

    server_name www.new_company.com;

    return 301 $scheme://new_company.com$request_uri;

}

Důvody přesměrování provozu

Existuje několik důvodů, proč přesměrovat provoz HTTP na HTTPS. Možná budete muset:

  • Vynucení bezpečnějšího, šifrovaného připojení.
  • Udržujte stránku s dobrým hodnocením SEO, ale posílejte její provoz na novou stránku.
  • Upozorňovat a dočasně odesílat provoz na stránku „probíhá údržba“.
  • Trvale přesměrovat provoz z jednoho webu na druhý, tj. po sloučení společnosti.

Linux
  1. Jak nainstalovat HTTP Git Server s Nginx na Ubuntu 20.04

  2. Jak nainstalovat HTTP Git Server s Nginx na Debian 11

  3. Přesměrování HTTP na HTTPS v NginX

  1. Jak používat Nginx k přesměrování

  2. Jak přesměrovat http na https pomocí .htaccess?

  3. Jak automaticky přesměrovat HTTP na HTTPS na serverech Apache?

  1. Jak nainstalovat HTTP Git Server s Nginx na Ubuntu 16.04

  2. Jak povolit HTTP/2 v Nginx

  3. Jak povolit podporu HTTP/2.0 na Nginx