Nginx novirza HTTP uz HTTPS

Nginx Redirect Http Https



Nginx, kas tiek izrunāts kā Engine x, ir bezmaksas, atvērtā pirmkoda augstas veiktspējas tīmeklis uz Linux un reversais starpniekserveris, kas ir atbildīgs par lielākās interneta vietnes trafika slodzes pārvaldību un apstrādi. Nginx ir spēcīgs novirzīšanas rīks, ko jūsu sistēmā var viegli konfigurēt, lai novirzītu mazāk drošu vai nešifrētu HTTP tīmekļa trafiku uz šifrētu un aizsargātu HTTPS tīmekļa serveri. Ja esat sistēmas administrators vai izstrādātājs, tad regulāri izmantojat Nginx serveri.

Šajā rakstā mēs strādāsim pie tā, kā novirzīt tīmekļa trafiku no HTTP uz drošu HTTPS programmā Nginx.







Atbildes un pieprasījumi tiek atgriezti HTTP teksta veidā, savukārt HTTPS izmanto SSL/TLS, lai šifrētu saziņu starp klientu un servera sistēmu. Tāpēc daudzu iemeslu dēļ HTTPS tiek izmantots, izmantojot HTTP, kas ir uzskaitīti zemāk:



  • Visi dati starp klientu-serveri abos virzienos ir šifrēti. Tomēr ikviens nevar piekļūt sensitīvai informācijai, ja to pārtver.
  • Ja izmantojat HTTPS, Google Chrome un citas pārlūkprogrammas uzskatīs jūsu vietnes domēnu par drošu.
  • HTTPS versija uzlabo jūsu norādīto vietnes veiktspēju, izmantojot HTTP/2 protokolu.
  • Ja jūs apkalpojat savas vietnes domēnu, izmantojot HTTPS, vietne Google rangā būs labāka, jo tā dod priekšroku visām HTTPS aizsargātajām vietnēm.

Katrai vietnes versijai vēlams novirzīt datplūsmas HTTP uz HTTPS Nginx atsevišķā servera blokā. Ieteicams arī izvairīties no datplūsmas novirzīšanas, izmantojot virzienu, kas var izraisīt neparastu servera darbību.



Novirziet visu datplūsmu no HTTP uz HTTPS

Pievienojiet šādas izmaiņas Nginx konfigurācijas failā, lai novirzītu visu datplūsmu no HTTP uz HTTPS versiju:





serveris {
klausies 80default_server;
servera_nosaukums _;
atgriezties 301https: //$ saimnieks$ request_uri;
}

Tālāk mēs esam izstrādājuši katru iepriekš minēto terminu:

Noklausīties 80 default_server - tas signalizēs jūsu sistēmu, kas uztver visu HTTP trafiku 80. portā.
Server_name _ - tas ir domēns, kas atbilst jebkuram saimniekdatora nosaukumam.



Atgrieziet 301 https: // $ host $ request_uri - tas norāda jūsu meklētājprogrammām, kas to pastāvīgi novirza. Tas norāda, ka mainīgajam $ host pieder domēna vārdi.

Kad esat mainījis konfigurācijas iestatījumus, jums jāpārlādē Nginx pakalpojumi savā sistēmā. Tātad, atkārtoti ielādējiet savus Nginx pakalpojumus, izmantojot šādu komandu:

$sudosystemctl pārlādēt nginx

Novirzīt HTTP uz HTTPS versiju norādītajam domēnam Nginx

Pēc SSL sertifikāta instalēšanas savā domēnā jums būs divas servera bloķēšanas iespējas šim domēnam. Viens bloks ir paredzēts HTTP versijas klausīšanai portā 80, bet otrā versija ir HTTPS portā 443. Tomēr, lai novirzītu vienu vietnes domēnu no HTTP uz HTTPS, jums ir jāatver Nginx konfigurācija. Šo konfigurācijas failu varat atrast direktorijā/etc/nginx/sites-available. Jebkurā gadījumā, ja neatradāt šo failu, varat to meklēt, izmantojot /etc/nginx/nginx.conf,/usr/local/nginx/conf vai/usr/local/etc/nginx, un pēc tam veikt Šajā failā tiek veiktas šādas izmaiņas:

serveris {
klausies 80;
servera_nosaukums domēna nosaukums.com www.domēna nosaukums.com;
atgriezties 301https://domain-name.com$ request_uri;
}

Izpratīsim iepriekš minēto kodu pa rindām.
Klausieties 80 - izmantojot portu 80, serveris uzklausīs visus ienākošos savienojumus norādītajā domēnā.

Server_name domain-name.com www.domain-name.com-tas norāda domēna nosaukumus. Tātad, aizstājiet to ar savas vietnes domēna nosaukumu, kuru vēlaties novirzīt.

Atgrieziet 301 https: //domain-name.com$request_uri-tas pārvieto datplūsmu uz vietnes HTTPS versiju. Mainīgais $ request_uri tiek izmantots pilnam sākotnējā pieprasījuma URI, kurā ir iekļauti arī argumenti.

Izmantojot šo metodi, varat novirzīt datplūsmu uz HTTPS www versiju uz vietnes versiju, kas nav www. Ieteicams izveidot novirzīšanu atsevišķā servera blokā gan versijām, kas nav www, gan www.

Paskaidrosim ar piemēru. Ja vēlaties novirzīt www HTTPS pieprasījumus uz versiju, kas nav www, tad rīkojieties šādi:

serveris {
klausies 80;
servera_nosaukums domēna nosaukums.com www.domēna nosaukums.com;
atgriezties 301https://domain-name.com$ request_uri;
}
serveris {
klausies 443 ssl http2;
servera_nosaukums www.domain-name.com;
#. . . cits kods
atgriezties 301https://domain-name.com$ request_uri;
}
serveris {
klausies 443 ssl http2;
servera_nosaukums domēna nosaukums.com;

#. . . cits kods
}

Aizstājiet domēna nosaukumu ar savu domēnu, piemēram, www.linuxhint.com.

Secinājums

Mēs esam apsprieduši, kā novirzīt trafiku no HTTP versijas uz HTTPS Nginx serverī. Mainot Nginx konfigurācijas faila iestatījumu, jūs varat viegli novirzīt datplūsmu uz HTTPS noteiktam domēnam vai novirzīt visus. Šī metode, kuru mēs pieminējām šajā rakstā, var palīdzēt padarīt jūsu vietni drošāku, veicot izmaiņas lietotāja pieredzē.