Paruošimas
Paruošimo segmente yra panaikintos bendrosios abiejų vėliau nurodytų metodų instrukcijos. Aišku, norint turėti „Nginx“ konfigūracijos failą, svarbu turėti konsolę, kad būtų galima pasiekti serverį per SSH, ir tinkamą teksto redaktorių kaip „nano“. Kai abu įsigysite, naudokite šias komandas, kad atidarytumėte, išsaugotumėte ir pritaikytumėte pakeitimus. Atliekant šiuos veiksmus daroma prielaida, kad vartotojas jau naudojasi serveriu per SSH.
- Įveskite šią komandą, kad atidarytumėte numatytąjį „Nginx“ konfigūracijos failą. Jei kiekvienas domenas turi atskirą konfigūracijos failą, vietoj numatytojo naudokite jo pavadinimą.
- Numatytame arba konfigūracijos faile įveskite kodus, nurodytus viename iš vėlesnių minėtų metodų. Naudokite tik vieną iš jų.
- Naudodami šią komandą išbandykite konfigūracijos failą prieš perkeldami jį į tiesioginį režimą.
- Jei viskas tvarkinga, eikite į priekį ir įveskite šią komandą, kad pakeitimai įsigaliotų.
1 metodas: bendrasis metodas
Bendrąjį metodą labai lengva įgyvendinti ir suprasti, nes jame yra tik vietos blokas. Be to, jis blokuoja užklausas tik tam tikrais failų formatais, užuot blokavęs kiekvieną neteisingų nukreipėjų į serverį užklausą.
- Nukopijuokite šį kodo fragmentą.
- Atidarykite numatytąjį „nginx“ failą, kaip parodyta „Pasirengimo“ etape.
- Įklijuokite nukopijuotą kodo fragmentą į pirmąjį vietos bloką, esantį numatytame faile. „Nginx“ sistemoje prieš įprastą pasvirąjį brūkšnį (/) visada pirmenybė teikiama taisyklingosios išraiškos didžiosioms ir mažosioms raidėms (~ *), todėl šis kodo fragmentas vykdomas prieš priekinio pasvirojo brūkšnio vietos bloką.
- Išsaugokite ir uždarykite numatytąjį failą, tada atlikite 3, 4 etapus „Paruošimas“, kad pakeitimai įsigaliotų.
Šiame pavyzdyje jis blokuoja užklausas į css, gif, ico, jpeg, js, png, woff, woff2, ttf, ttc, otf ir eot failus. Vietos bloke yra 10 sąlyginių sakinių. Pirmasis sąlyginis sakinys leidžia tiesiogiai peržiūrėti išteklius per interneto naršyklęnd ir 3rd blokai leidžia peržiūrėti išteklius per pradinę svetainę (tiek nuogus, tiek www padomenius), likę blokai, išskyrus paiešką?q ir paskutinis blokas leidžia paieškos variklių tikrintuvams pasiekti ir indeksuoti išteklius, o tai yra labai svarbu indeksuoti vaizdus tiek „Google“ vaizduose, tiek „Bing“ vaizduose. Paieška?q leidžia „Google“ talpyklos tarnybai pasiekti ir išsaugoti išteklius kartu su puslapiu, todėl puslapį galima pasiekti tiesiogiai per „Google“ paieškos rezultatus, kai svetainė neprijungta prie interneto.
vieta ~ * \.(css | gif | ico | jpeg | jpg | js | png | woff | woff2 | ttf | ttc | otf | eot) $jei ($ http_referer !~ "^ $")
nustatyti $ rule_0 1 $ rule_0;
jei ($ http_referer !~ "^ http: // nucuta.com /.* $ ")
nustatyti $ rule_0 2 $ rule_0;
jei ($ http_referer !~ "^ http: // nucuta.com $ ")
nustatyti $ rule_0 3 $ rule_0;
jei ($ http_referer !~ * "google.")
nustatyti $ rule_0 4 $ rule_0;
jei ($ http_referer !~ * "paieška?q = talpykla ")
nustatyti $ rule_0 5 $ rule_0;
jei ($ http_referer !~ * "msn.")
nustatyti $ rule_0 6 $ rule_0;
jei ($ http_referer !~ * "yahoo.")
nustatyti $ rule_0 7 $ rule_0;
jei ($ http_user_agent !~ * "googlebot")
nustatyti $ rule_0 8 $ taisyklę_0;
jei ($ http_user_agent !~ * "msnbot")
nustatyti $ rule_0 9 $ rule_0;
jei ($ http_user_agent !~ * "slurp")
nustatyti $ rule_0 10 $ taisyklę_0;
jei ($ rule_0 = "10987654321")
grįžti 403;
pertrauka;
2 metodas: „Valid_Referers“ metodas
Galiojantys persiuntėjai yra patogiausias ir plačiai pripažintas būdas lengvai blokuoti negaliojančius persiuntėjus. Jame yra tik dvi eilutės, palyginti su ankstesniu metodu, ir jis yra labai lankstus. Tačiau tai šiek tiek sunku suvirškinti, nes tai apima reguliarius posakius ir kitokį mechanizmą, kuris blokuoja negaliojančių persiuntėjų užklausas.
- Nukopijuokite šį kodo fragmentą tarp pagrindinio vietos bloko ir tarp jų.
- Pakeiskite domenų vardų sąrašą leistinais domenų pavadinimais, pvz., „Google“, „Bing“ ar savo domenais ir pan.
- Išsaugokite ir uždarykite numatytąjį failą, tada atlikite 3, 4 etapus „Paruošimas“, kad pakeitimai įsigaliotų.
valid_referers nėra užblokuotų serverių_vardų
*.linux.com linux.* www.linux.com / about /~ \.Linux \.;
jei ($ invalid_referer)
grįžti 403;
Jame daugiausia yra du kodų blokai „valid_referers“ ir „if“ sąlyginė išraiška su invalid_referer kintamuoju. Pagal numatytuosius nustatymus šis kodo blokas naudojamas tarp vietos ir pačioje vietos bloko pradžioje prieš vykdant bet kurį kitą kodą, tačiau jis taip pat gali būti naudojamas bet kurioje kitoje vietoje, pavyzdžiui, tarp vietos kodo bloko su reguliariomis išraiškomis aptikti konkrečius failų formatus, kad blokavimas būtų aktualus pirmiau nurodytiems failų formatams, kaip nurodyta 1 metode. Kaip paaiškinta anksčiau, metode yra tik du kodų blokai, pirmame kodo bloke yra 3 raktiniai žodžiai, pirmasis yra „nėra“, kai HTTP užklausoje trūksta persiuntimo lauko, antrasis yra „užblokuotas“, kai ištrinamas persiuntimo laukas. bet kuri vidurinė šalis, pvz., įgaliotasis kompiuteris, užkarda ir kt., trečiasis raktinis žodis skirtas nurodyti galiojančius domenų vardus.
Kai domeno vardas prasideda simboliu „~“, jis laikomas taisyklinga išraiška, todėl galima naudoti labai sudėtingus šablonus, tačiau gali būti sunku suprasti, jei reguliarūs posakiai nėra gerai žinomi. Jei teiginyje valid_referers nėra įvykdyta nė viena iš sąlygų, kintamasis invalid_referer nustatomas kaip tuščia eilutė, priešingu atveju jis nustatytas į 1, ką reiškia, jei būsimoje užklausoje nėra persiuntimo lauko arba jei nginx nustatė, kad persiuntimo laukas pašalintas ugniasienė ar tarpinis serveris, arba jei persiuntimo laukas nustatytas kaip nurodytas domenas (galiojantis domenų vardų sąrašas), tada netinkamas persiuntimo kintamasis nustatomas kaip tuščia eilutė, taigi, jei sąlyga nevykdoma. Tačiau jei užklausa gaunama iš domeno, kuris „valid_referers“ išraiškoje nenurodytas kaip galiojantis domenas, jis užblokuotas.
IŠVADA
Nepamirškite atsižvelgti į šį turinį ir užkirsti kelią karštųjų nuorodų teikimui jūsų „Nginx“ priglobtose svetainėse.