„Nginx“ peradresuoja HTTP į HTTPS

Nginx Redirect Http Https



„Nginx“, tariamas kaip „Engine x“, yra nemokamas atviro kodo „Linux“ pagrįstas didelio našumo žiniatinklis ir atvirkštinis tarpinis serveris, atsakingas už didžiausio interneto srauto internete apkrovos valdymą ir tvarkymą. „Nginx“ yra galingas peradresavimo įrankis, kurį jūsų sistemoje galima lengvai sukonfigūruoti nukreipti mažiau saugų arba nešifruotą HTTP žiniatinklio srautą į užšifruotą ir apsaugotą HTTPS žiniatinklio serverį. Jei esate sistemos administratorius arba kūrėjas, reguliariai naudojate „Nginx“ serverį.

Šiame straipsnyje aptarsime, kaip nukreipti žiniatinklio srautą iš HTTP į saugų HTTPS „Nginx“.





Atsakymai ir užklausos grąžinami paprastu tekstu HTTP, o HTTPS naudoja SSL/TLS ryšiui tarp kliento ir serverio sistemos užšifruoti. Todėl dėl daugelio priežasčių HTTPS naudojamas per HTTP, kurios išvardytos toliau:



  • Visi duomenys tarp kliento ir serverio abiem kryptimis yra užšifruoti. Tačiau niekas negali prieiti prie slaptos informacijos, jei yra sulaikytas.
  • Kai naudojate HTTPS, „Google Chrome“ ir kitos naršyklės jūsų svetainės domeną laikys saugiu.
  • HTTPS versija pagerina nurodytą svetainės našumą naudojant HTTP/2 protokolą.
  • Jei aptarnaujate savo svetainės domeną per HTTPS, svetainė bus geriau įvertinta „Google“, nes ji teikia pirmenybę visoms HTTPS apsaugotoms svetainėms.

Pageidautina nukreipti srautą HTTP į HTTPS „Nginx“ atskiroje serverio bloke kiekvienai svetainės versijai. Taip pat rekomenduojama vengti srauto peradresavimo naudojant kryptį, kuri gali sukelti neįprastą serverio elgesį.



Peradresuokite visą srautą iš HTTP į HTTPS

Į „Nginx“ konfigūracijos failą įtraukite šiuos pakeitimus, kad nukreiptumėte visą srautą iš HTTP į HTTPS versiją:





serveris {
klausyk 80numatytasis_serveris;
serverio pavadinimas _;
grįžti 301https: //$ šeimininkas$ request_uri;
}

Žemiau mes parengėme kiekvieną aukščiau paminėtą terminą:

Klausykitės 80 default_server - tai signalizuos jūsų sistemą, kuri užfiksuoja visą HTTP srautą 80 prievade.
Serverio_pavadinimas _ - tai domenas, kuris atitiks bet kurį pagrindinio kompiuterio pavadinimą.



Grąžinkite 301 https: // $ host $ request_uri - tai nurodo jūsų paieškos sistemoms, kad ji visam laikui peradresuoja. Jame nurodoma, kad kintamasis $ host turi domenų pavadinimus.

Kai pakeisite konfigūracijos nustatymus, turite iš naujo įkelti „Nginx“ paslaugas į savo sistemą. Taigi, iš naujo įkelkite „Nginx“ paslaugas naudodami šią komandą:

$sudosystemctl iš naujo įkelti nginx

Peradresuokite HTTP į nurodyto domeno „Nginx“ HTTPS versiją

Įdiegę SSL sertifikatą savo domene, turėsite dvi šio domeno serverio blokavimo parinktis. Vienas blokas skirtas HTTP versijai klausytis 80 prievado, o antroji versija - HTTPS prievadui 443. Tačiau norint nukreipti vieno svetainės domeną iš HTTP į HTTPS, turite atidaryti „Nginx“ konfigūraciją. Šį konfigūracijos failą galite rasti kataloge/etc/nginx/sites-available. Bet kuriuo atveju, jei neradote šio failo, galite jo ieškoti naudodami /etc/nginx/nginx.conf,/usr/local/nginx/conf arba/usr/local/etc/nginx, tada atlikite šiuos pakeitimus šiame faile:

serveris {
klausyk 80;
serverio pavadinimas domain-name.com www.domain-name.com;
grįžti 301https://domain-name.com$ request_uri;
}

Supraskime aukščiau pateiktą kodą eilute po eilutės.
Klausytis 80 - naudojant 80 prievadą, serveris klausys visų įeinančių ryšių nurodyto domeno.

Serverio_domenas-vardas.com www.domenas-vardas.com-jame nurodomi domenų pavadinimai. Taigi pakeiskite jį savo svetainės domeno pavadinimu, kurį norite nukreipti.

Grąžinkite 301 https: //domain-name.com$request_uri-srautas perkeliamas į HTTPS svetainės versiją. Kintamasis $ request_uri naudojamas visam pradiniam užklausos URI, kuriame taip pat yra argumentų.

Naudodami šį metodą, galite nukreipti srautą į HTTPS www versiją į ne svetainės versiją. Rekomenduojama sukurti peradresavimą atskirame serverio bloke tiek ne www, tiek www versijoms.

Paaiškinkime pavyzdžiu. Jei norite nukreipti www HTTPS užklausas į ne www versiją, atlikite šią konfigūraciją:

serveris {
klausyk 80;
serverio pavadinimas domain-name.com www.domain-name.com;
grįžti 301https://domain-name.com$ request_uri;
}
serveris {
klausyk 443 ssl http2;
serverio pavadinimas www.domenas-vardas.com;
#. . . kitas kodas
grįžti 301https://domain-name.com$ request_uri;
}
serveris {
klausyk 443 ssl http2;
serverio pavadinimas domenas-pavadinimas.com;

#. . . kitas kodas
}

Pakeiskite domeno pavadinimą savo domenu, pvz., Www.linuxhint.com.

Išvada

Aptarėme, kaip peradresuoti srautą iš HTTP versijos į HTTPS „Nginx“ serveryje. Pakeitę „Nginx“ konfigūracijos failo nustatymą, galite lengvai peradresuoti srautą į HTTPS nurodytam domenui arba nukreipti visus. Šis metodas, kurį paminėjome šiame straipsnyje, gali padėti padaryti jūsų svetainę saugesnę, pakeisdamas naudotojo patirtį.