Išankstiniai reikalavimai
Visų pirma, šiame vadove daroma prielaida, kad vartotojas yra įdiegęs tinkamą SSH klientą kompiuteryje, jei ne, įdiekite „Putty“ kaip klientą, tada naudokite šias komandas. Be to, reikalingas „Nginx“ ir „Nano“ redaktorius.
- Norėdami įdiegti „Nano“ teksto rengyklę, įveskite šias komandas. Pirmoji komanda padeda gauti naujausius paketus iš saugyklų, o antroji komanda įdiegia naujausią nano teksto redaktoriaus versiją.
sudo apt-get install nano
- Terminalo lange įveskite šią komandą, jei norite pakeisti dabartinį katalogą į „nginx“ katalogą.
- Dabar įveskite nano numatytasis arba failo pavadinimą, susietą su domenu, kad pakeistumėte domeno nustatymus.
- Nuo šiol tęskite vieną iš šių segmentų.
Peradresavimas iš HTTP (80 prievadas)
„Google“, „Bing“ ir daugelis kitų paieškos sistemų šiuo metu teikia pirmenybę svetainėms, turinčioms šifruotą ryšį. Kai ryšys tarp kliento ir serverio yra užšifruotas, duomenys, perduodami tuo konkrečiu ryšiu, yra saugūs, todėl trečiosios šalys negali prieiti prie tų duomenų. Kai ryšys nėra užšifruotas, tokios svetainės yra nesaugios, todėl tai kelia pavojų duomenų saugumui. Nesaugi svetainė naudoja 80 prievadą teikdama savo paslaugas visuomenei. Deja, pagal numatytuosius nustatymus žiniatinklio naršyklė prisijungia prie 80 prievado, nes žiniatinklio serveris daro prielaidą, kad tai yra tai, ko klientas nori pagal numatytuosius nustatymus, todėl užklausą reikia nukreipti į saugią versiją. Yra keli būdai, kaip tai padaryti naudojant „Nginx“.
1 metodas
Jei dabartinis domeno vardas yra prieinamas ir jei jis gauna klientų užklausų, juos galima nukreipti į kitą domeną su šiuo kodo fragmentu. Tiesiog nukopijuokite jį į numatytąjį failą arba domeno failą.
Numatytasis serverio parametras nurodo, kad šis serverio blokas yra numatytasis serveris, todėl visos užklausos 80 prievadui pirmiausia įvykdo šį serverio bloką pagal numatytuosius nustatymus, o po to seka poilsis. Skliaustas reiškia, kad jis taip pat užfiksuoja užklausas iš „ipv6“ tinklų. Grąžinimas 310 reiškia, kad peradresavimas yra nuolatinis, taigi kartu su juo praeina ir nuorodos sultys.
serverisklausytis 80 default_server;
klausytis [::]: 80 default_server;
server_name domenas.com www.domenas.com;
grąžinti 301 https: // domeną.com $ request_uri;
2 metodas
Jei dabartiniame serveryje nėra prie jo pridėtos svetainės ir reikalavimas peradresuoti visas užklausas į 80 prievadą, galima naudoti šį serverio bloką. Nukopijuokite jį į numatytąjį failą, kaip nurodyta anksčiau. Čia _ (pabraukimas) žymi bet kurį domeną. Kaip ir anksčiau, čia taip pat galima naudoti parametrą default_server, skliaustus (IPv6 adresams), pvz., Pasirenkamus atributus.
serverisklausytis 80 default_server;
serverio pavadinimas _;
grąžinti 301 https: // $ host $ request_uri;
3 metodas
Šis kodo fragmentas reiškia, jei ryšys nėra užšifruotas, vadinasi, 80 prievadas gauna užklausas, tada jie nukreipiami į saugią nurodyto domeno versiją. Tai turėtų būti nukopijuota bet kurioje serverio bloko vietoje, bet po parametro server_name.
jei ($ schema != „https“)grąžinti 301 https: // $ host $ request_uri;
Nukreipimas iš IP adreso
Skirtingai nuo bendro kompiuterio, tiek dedikuoti, tiek virtualūs privatūs serveriai visada turi tam skirtą IP adresą. Jei žiniatinklio serveris sukonfigūruotas naudojant „Nginx“ su pabraukimu (tai reiškia, kad serveris apdoroja kiekvieną užklausą), bet kuri IP adreso užklausa taip pat gauna prieigą prie svetainės. Kiekvienas interneto meistras dėl įvairių priežasčių nori turėti prieigą prie interneto naudodamas IP adresą. Kita vertus, jei kiekviena užklausa apdorojama, kenkėjai gali susieti bet kokį atsitiktinį domeną su žiniatinklio serveriu, o tai nėra gerai prekės ženklo ar verslo pavadinimui, todėl svarbu apdoroti tik užklausas į konkrečius domenus arba IP adresas. Šis segmentas tokiais atvejais parodo, kaip apdoroti užklausas į žiniatinklio serverio IP adresą. Naudojant šį kodo bloką kartu su vienu iš aukščiau nurodytų kodų blokų (išskyrus ankstesnio sprendimo 2 metodą), užtikrinama, kad kiekviena užklausa būtų nukreipta į abu domenus, o IP būtų nukreipta į norimą paskirties vietą.
Kaip minėta pirmiau, nukopijuokite šį kodo fragmentą į numatytąjį „Nginx“ failą (išankstiniai reikalavimai, 3 žingsnis). Užuot naudoję domeno pavadinimą parametre server_name, tiesiog naudokite serverio IP adresą, tada kitoje eilutėje naudokite „return 301 domain“ ten, kur peradresuojama užklausa. Dabar, kai užklausa šiuo konkrečiu IP adresu gaunama į serverį, ji nukreipiama į nurodytą domeną. Geriausias to pavyzdys yra tai, kai atsitiktinis vartotojas įveda žiniatinklio serverio IP, kad galėtų tiesiogiai pasiekti svetainę. Jei šis kodo fragmentas nenurodytas niekur numatytame faile, jokia užklausa į IP nėra apdorojama; taigi vartotojai negali prisijungti prie interneto naudodami IP adresą.
serverisklausytis 80;
klausyk [::]: 80;
klausyk 443 ssl http2;
klausyk [::]: 443 ssl http2;
serverio_vardas 192.168.1.1;
grįžti 301 https: // nucuta.com;
Peradresuoti iš bet kurio kito domeno
Šis sprendimas yra tas pats, kas pirmasis šio vadovo sprendimas, išskyrus tai, kad jis taip pat peradresuoja užklausas į žiniatinklio serverio 443 prievadą, o tai reiškia, kad tiek saugios, tiek neužtikrintos užklausos nukreipiamos į nurodytą domeną grąžinimo parametru. Kaip minėta anksčiau, tiesiog nukopijuokite tai į numatytąjį failą.
serverisklausytis 80;
klausyk [::]: 80;
klausyk 443 ssl http2;
klausyk [::]: 443 ssl http2;
server_name domenas.com www.domenas.com;
grįžti 301 https: // nucuta.com;
Baigiama
Atlikus vieną iš pirmiau pateiktų sprendimų, „nginx“ failas turi būti sukompiliuotas, kad jis įsigaliotų. Tačiau prieš kompiliuojant reikia išbandyti numatytąjį failą, nes jis apsaugo žiniatinklio serverį nuo strigimo, jei konfigūracijoje įvyko klaida.
- Norėdami išbandyti numatytąjį konfigūracijos failą, tiesiog naudokite šią komandą „Linux“ terminale, todėl rezultatas yra geras tęsti kitą žingsnį.
- Norėdami iš naujo paleisti „Nginx“ žiniatinklio serverį, naudokite vieną iš šių komandų. Komanda priklauso nuo „Linux“ distributoriaus pavadinimo ir versijos.
sudo paslauga nginx perkrauti
sudo / etc / init.d / nginx perkrauti