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ť nginxPresmerujte 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í.