Nginx presmeruje HTTP na HTTPS

Nginx Redirect Http Https



Nginx, označovaný ako Engine x, je bezplatný, vysokovýkonný webový server s otvoreným zdrojovým kódom založený na Linuxe a reverzný proxy server, ktorý je zodpovedný za správu a zvládanie záťaže najväčšej návštevnosti webových stránok na internete. Nginx je výkonný nástroj na presmerovanie, ktorý je možné vo vašom systéme ľahko nakonfigurovať tak, aby presmeroval menej bezpečný alebo nešifrovaný webový prenos HTTP na šifrovaný a zabezpečený webový server HTTPS. Ak ste správcom systému alebo vývojárom, potom server Nginx používate pravidelne.

V tomto článku sa budeme zaoberať tým, ako presmerovať webový prenos z HTTP na zabezpečený HTTPS v Nginxe.







Odpovede a požiadavky sa vracajú vo forme čistého textu v HTTP, zatiaľ čo HTTPS používa SSL/TLS na šifrovanie komunikácie medzi klientským a serverovým systémom. Z mnohých dôvodov sa preto protokol HTTPS používa cez protokol HTTP, ktoré sú uvedené nižšie:



  • Všetky údaje medzi klient-serverom v oboch smeroch sú šifrované. Ak je však niekto zachytený, nemôže získať prístup k citlivým informáciám.
  • Keď používate HTTPS, prehliadač Google Chrome a ďalšie prehliadače budú považovať doménu vašej webovej stránky za bezpečnú.
  • Verzia HTTPS zlepšuje výkon vašich webových stránok pomocou protokolu HTTP/2.
  • Ak budete svoju doménu webových stránok obsluhovať prostredníctvom HTTPS, bude mať táto webová stránka lepšie hodnotenie v službách Google, pretože uprednostňuje všetky zabezpečené webové stránky s HTTPS.

Je výhodné presmerovať prenos HTTP na HTTPS v Nginx v samostatnom bloku servera pre každú verziu webu. Odporúča sa tiež vyhnúť sa presmerovaniu prevádzky pomocou smeru if, ktorý môže spôsobiť neobvyklé správanie servera.



Presmerujte všetok prenos z HTTP na HTTPS

Do konfiguračného súboru Nginx pridajte nasledujúce zmeny, aby ste presmerovali všetku návštevnosť z verzie HTTP na HTTPS:





server {
počúvaj 80default_server;
názov servera _;
vrátiť sa 301https: //$ hostiteľ$ request_uri;
}

Nasledovne sme rozpracovali každý vyššie uvedený výraz:

Počúvajte 80 default_server - to bude signalizovať váš systém, ktorý zachytáva všetku komunikáciu HTTP na porte 80.
Server_name _ - je to doména, ktorá sa bude zhodovať s akýmkoľvek názvom hostiteľa.



Vrátiť 301 https: // $ host $ request_uri - to napovie vašim vyhľadávacím nástrojom, ktoré ho natrvalo presmerujú. Špecifikuje, že premenná $ host obsahuje názvy domén.

Hneď ako zmeníte konfiguračné nastavenia, musíte znova načítať služby Nginx do svojho systému. Znova načítajte svoje služby Nginx pomocou nasledujúceho príkazu:

$sudosystemctl znova načítať nginx

Presmerujte verziu HTTP na HTTPS pre uvedenú doménu v Nginx

Po inštalácii certifikátu SSL na vašu doménu budete mať pre túto doménu dve možnosti blokovania servera. Jeden blok slúži na počúvanie verzie HTTP na porte 80 a druhá verzia je HTTPS na porte 443. Na presmerovanie jednej domény webových stránok z HTTP na HTTPS však musíte otvoriť konfiguráciu Nginx. Tento konfiguračný súbor môžete nájsť v adresári/etc/nginx/sites-available. V každom prípade, ak ste tento súbor nenašli, môžete ho vyhľadať pomocou /etc/nginx/nginx.conf,/usr/local/nginx/conf alebo/usr/local/etc/nginx, a potom vykonať nasledujúce zmeny v tomto súbore:

server {
počúvaj 80;
názov servera domena-name.com www.domena-name.com;
vrátiť sa 301https://domena-name.com$ request_uri;
}

Poďme porozumieť vyššie uvedenému kódu riadok po riadku.
Počúvať 80 - pomocou portu 80 bude server počúvať všetky domény zadané pre prichádzajúce pripojenia.

Názov_servera názov_domény.com www.domena-nazov.com-určuje názvy domén. Nahraďte ho preto názvom domény svojho webu, ktorý chcete presmerovať.

Vrátiť 301 https: //domain-name.com$request_uri-presunie návštevnosť do verzie stránok HTTPS. Premenná $ request_uri sa používa pre úplný pôvodný identifikátor URI požiadavky, v ktorom sú zahrnuté aj argumenty.

Nasledujúcim spôsobom môžete presmerovať návštevnosť na verziu HTTPS www na verziu stránky, ktorá nie je www. Odporúča sa vytvoriť presmerovanie v samostatnom bloku servera pre verzie, ktoré nie sú www a www.

Vysvetlíme to na príklade. Ak chcete presmerovať požiadavky www HTTPS na verziu, ktorá nie je www, postupujte podľa nasledujúcej konfigurácie:

server {
počúvaj 80;
názov servera domena-name.com www.domena-name.com;
vrátiť sa 301https://domena-name.com$ request_uri;
}
server {
počúvaj 443 ssl http2;
názov servera www.domena-name.com;
#. . . iný kód
vrátiť sa 301https://domena-name.com$ request_uri;
}
server {
počúvaj 443 ssl http2;
názov servera domena-nazov.com;

#. . . iný kód
}

Nahraďte názov domény svojou doménou, napríklad www.linuxhint.com.

Záver

Diskutovali sme o tom, ako presmerovať prenos z verzie HTTP na HTTPS na serveri Nginx. Zmenou nastavenia konfiguračného súboru Nginx môžete jednoducho presmerovať prenos na HTTPS buď pre zadanú doménu, alebo presmerovať všetky. Táto metóda, ktorú sme uviedli v tomto článku, vám môže pomôcť zaistiť väčšiu bezpečnosť vašich webových stránok vykonaním akýchkoľvek zmien v používateľskom prostredí.