Nginx

Kaip peradresuoti URL „Nginx“

Kaip peradresuoti URL „Nginx“
„Nginx“ yra lengvas žiniatinklio serveris, kuris dažnai naudojamas kaip atvirkštinis tarpinis serveris, žiniatinklio serveris ir apkrovos balansatorius. Pagal numatytuosius nustatymus „Nginx“ pateikia daug naudingų funkcijų, o diegiant galima pridėti daugiau modulių. Šiame vadove ketinama parodyti, kaip naudoti „Nginx“ URL nukreipiant į skirtingas puses. Nors „Nginx“ teikia daugybę funkcijų URL nukreipimui, šiame vadove naudojama dalis jų, nes ketinama mokyti tik esminius URL nukreipiant. Šiame vadove aptariamos sritys yra nesaugių (80 prievado) URL nukreipimas į saugią versiją, užklausos nukreipimas į IP į domeno vardą ir galų gale kitų pagrindinių domenų, domenų nukreipimas į pagrindinį domeną.

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.

  1. 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 atnaujinimas
sudo apt-get install nano
  1. Terminalo lange įveskite šią komandą, jei norite pakeisti dabartinį katalogą į „nginx“ katalogą.
cd / etc / nginx / sites-available
  1. Dabar įveskite nano numatytasis arba failo pavadinimą, susietą su domenu, kad pakeistumėte domeno nustatymus.
  2. 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.

serveris
klausytis 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.

serveris
klausytis 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ą.

serveris
klausytis 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ą.

serveris
klausytis 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.

  1. Norėdami išbandyti numatytąjį konfigūracijos failą, tiesiog naudokite šią komandą „Linux“ terminale, todėl rezultatas yra geras tęsti kitą žingsnį.
sudo nginx -t
  1. Norėdami iš naujo paleisti „Nginx“ žiniatinklio serverį, naudokite vieną iš šių komandų. Komanda priklauso nuo „Linux“ distributoriaus pavadinimo ir versijos.
sudo systemctl paleiskite iš naujo „nginx“
sudo paslauga nginx perkrauti
sudo / etc / init.d / nginx perkrauti
„OpenTTD“ pamoka
„OpenTTD“ yra vienas iš populiariausių verslo modeliavimo žaidimų. Šiame žaidime turite sukurti nuostabų transporto verslą. Tačiau pradėsite nuo mažda...
„SuperTuxKart“, skirta „Linux“
„SuperTuxKart“ yra puikus pavadinimas, sukurtas nemokamai suteikti „Mario Kart“ patirtį jūsų „Linux“ sistemoje. Tai gana sudėtinga ir smagu žaisti, yr...
„Battle for Wesnoth“ pamoka
„Battle for Wesnoth“ yra vienas populiariausių atvirojo kodo strateginių žaidimų, kurį šiuo metu galite žaisti. Šis žaidimas ne tik buvo kuriamas laba...