Ettevalmistus
Ettevalmistussegmendis võetakse mõlema hilisema meetodi üldised juhised. Ilmselt on Nginxi konfiguratsioonifaili avamiseks oluline, et serverile SSH kaudu juurde pääseks konsool ja korralik tekstiredaktor nanona. Kui mõlemad on omandatud, kasutage muudatuste avamiseks, salvestamiseks ja rakendamiseks järgmisi käske. Järgmised toimingud eeldavad, et kasutaja on juba SSH kaudu serverile juurde pääsenud.
- Nginxi vaikekonfiguratsioonifaili avamiseks tippige järgmine käsk. Kui igal domeenil on eraldi konfiguratsioonifail, kasutage vaikimisi asemel selle nime.
- Vaikimisi või konfiguratsioonifailis sisestage ühes hilisemas meetodis toodud koodid. Kasutage kindlasti ainult ühte neist.
- Kasutage järgmist käsku, et testida konfiguratsioonifail enne reaalajasse režiimi lülitamist.
- Kui kõik on õiges järjekorras, sisestage muudatuste jõustumiseks järgmine käsk.
1. meetod: üldmeetod
Üldist meetodit on väga lihtne rakendada ja sellest aru saada, kuna see sisaldab lihtsalt asukohablokki. Lisaks blokeerib see ainult teatud failivormingute päringud selle asemel, et blokeerida kehtetute suunajate serverisse kõik päringud.
- Kopeerige järgmine koodilõik.
- Avage nginxi vaikefail, nagu on näha etapis “Ettevalmistus”.
- Kleepige kopeeritud koodijupp vaikefaili esimese asukohaploki alla. Nginxis on regulaaravaldise vahetundlik (~ *) alati prioriteetseks enne kaldkriipsu (/) ja seega täidetakse järgmine koodijupp enne ettepoole kaldkriipsu asukoha plokki.
- Salvestage ja sulgege vaikefail ning järgige muudatuste jõustumiseks 3–4 etappi „Ettevalmistus“ etapis.
Järgmises näites blokeerib see taotlused failidele css, gif, ico, jpeg, js, png, woff, woff2, ttf, ttc, otf ja eot. Asukoha ploki all on 10 tingimuslauset. Esimene tingimuslik lause võimaldab ressursse otse vaadata veebibrauseri kaudund ja 3rd plokid võimaldavad ressursse vaadata algse saidi kaudu (nii alasti kui ka www-alamdomeenid), ülejäänud plokid välja arvatud otsing?q ja viimane plokk võimaldavad otsingumootorite indeksoijatel ressurssidele juurde pääseda ja neid indekseerida, mis on väga oluline nii Google'i piltide kui ka piltide indekseerimiseks. Otsing?q võimaldab google'i vahemäluteenusel pääseda juurde ja salvestada ressursse koos lehega ning seeläbi saab lehele juurde pääseda otse Google'i otsingutulemite kaudu, kui sait on võrguühenduseta.
asukoht ~ * \.(css | gif | ico | jpeg | jpg | js | png | woff | woff2 | ttf | ttc | otf | eot) $kui ($ http_referer !~ "^ $")
määra $ reegel_0 1 $ reegel_0;
kui ($ http_referer !~ "^ http: // nucuta.com /.* $ ")
määra $ reegel_0 2 $ reegel_0;
kui ($ http_referer !~ "^ http: // nucuta.com $ ")
sea $ reegel_0 3 $ reegel_0;
kui ($ http_referer !~ * "google.")
määra $ reegel_0 4 $ reegel_0;
kui ($ http_referer !~ * "otsing?q = vahemälu ")
määra $ reegel_0 5 $ reegel_0;
kui ($ http_referer !~ * "msn.")
sea $ reegel_0 6 $ reegel_0;
kui ($ http_referer !~ * "yahoo.")
sea $ reegel_0 7 $ reegel_0;
kui ($ http_user_agent !~ * "googlebot")
sea $ reegel_0 8 $ reegel_0;
kui ($ http_user_agent !~ * "msnbot")
sea $ reegel_0 9 $ reegel_0;
kui ($ http_user_agent !~ * "slurp")
määra $ reegel_0 10 $ reegel_0;
if ($ rule_0 = "10987654321")
tagasipöördumine 403;
murda;
2. meetod. Valid_Referers meetod
Kehtivad viitajad on kõige mugavam ja laialdaselt tunnustatud meetod kehtetute viitajate hõlpsaks blokeerimiseks. See sisaldab eelmise meetodiga võrreldes ainult kahte rida ja on väga paindlik. Kuid seda on natuke raske seedida, kuna see hõlmab regulaaravaldisi ja teistsugust mehhanismi kehtetute viitajate päringute blokeerimiseks.
- Kopeerige järgmine koodilõik peamise asukohabloki vahele ja vahele.
- Asendage domeeninimede loend lubatud domeeninimedega, näiteks google, bing või oma domeenid jne.
- Salvestage ja sulgege vaikefail ning järgige muudatuste jõustumiseks 3–4 etappi „Ettevalmistus” etapis.
valid_referers pole ühtegi blokeeritud serverinime
*.linux.com linux.* www.linux.com / about /~ \.Linux \.;
if ($ invalid_referer)
tagasipöördumine 403;
Sellel on peamiselt kaks koodiplokki, valid_referers ja muutuja if_referer tingimusväljend. Vaikimisi kasutatakse seda koodiplokki vahepeal ja asukohaploki alguses enne mis tahes muu koodi käivitamist, kuid seda saab kasutada ka mis tahes muus kohas, näiteks regulaaravaldistega asukohakoodiploki vahel tuvastada konkreetsed failivormingud, et blokeerimine oleks ülalnimetatud failivormingute jaoks asjakohane, nagu 1. meetodil. Nagu varem selgitatud, sisaldab meetod ainult kahte koodiplokki, esimene koodiplokk sisaldab 3 märksõna, esimene on “puudub”, kui viide väli puudub HTTP-päringus, teine on “blokeeritud”, kui viiteväli kustutatakse mis tahes keskmise osapoole poolt, näiteks puhverserver, tulemüür jne., kolmas märksõna on kehtivate domeeninimede täpsustamiseks.
Kui domeeninimi algab sümboliga ~, peetakse seda regulaaravaldiseks ja seega saab kasutada väga keerukaid mustreid, kuid võib olla raske mõista, kui regulaaravaldisi ei tunta hästi. Kui valid_referers-lauses pole ükski tingimus täidetud, seatakse muutuja invalid_referer tühjaks stringiks, vastasel juhul on see seatud väärtusele 1, mida tähendab, kui tulevane taotlus ei sisalda viitevälja või kui nginx tuvastas, et viiteväli on eemaldatud tulemüüri või puhverserveri abil või kui viite väljale on määratud määratud domeenid (kehtiv domeeninimede loend), siis vale viitaja muutuja määratakse tühjaks stringiks ja seega selle tingimuseks, kui seda ei täideta. Kui päring pärineb domeenilt, mida pole avaldises valid_referers kehtiva domeenina määratletud, siis see blokeeritakse.
JÄRELDUS
Mõelge kindlasti sellele sisule ja vältige kiirlinkimist oma Nginxi hostitud saitidel.