Förberedelse
I beredningssegmentet tas de allmänna instruktionerna för båda senare nämnda metoder bort. Uppenbarligen är det viktigt att ha en konsol för att komma åt servern via SSH, och en korrekt textredigerare som nano för att öppna Nginx-konfigurationsfilen. När båda har förvärvats, använd följande kommandon för att öppna, spara och tillämpa ändringarna. Följande steg förutsätter att användaren redan har åtkomst till servern via SSH.
- Skriv följande kommando för att öppna standardkonfigurationsfilen för Nginx. Om varje domän har en separat konfigurationsfil, använd dess namn istället för standard.
- I standard- eller konfigurationsfilstypen anger du koder som anges i en av de senare nämnda metoderna. Se till att bara använda en av dem.
- Använd följande kommando för att testa konfigurationsfilen innan du trycker den till live-läge.
- Om allt är i rätt ordning, fortsätt och skriv följande kommando för att tillämpa ändringarna för att träda i kraft.
Metod 1: Allmän metod
Den allmänna metoden är mycket lätt att implementera och förstå eftersom den bara innehåller ett platsblock. Dessutom blockerar den förfrågningar till vissa filformat bara istället för att blockera varje begäran från ogiltiga referenser till servern.
- Kopiera följande kodavsnitt.
- Öppna standardfilen för nginx enligt "Förberedelser" -fasen.
- Klistra in det kopierade kodavsnittet under det första platsblocket som finns i standardfilen. I nginx prioriteras det vanliga skiftläget okänsligt (~ *) alltid före snedstreck framåt (/), och följaktligen körs följande kodavsnitt före blixtsnitten.
- Spara och stäng standardfilen och följ sedan 3, 4 steg i "Förberedelsefasen" för att göra ändringar som träder i kraft.
I följande exempel blockerar den förfrågningar till css-, gif-, ico-, jpeg-, js-, png-, woff-, woff2-, ttf-, ttc-, otf- och eot-filer. Det finns 10 villkorliga uttalanden under platsblock. Det första villkorliga uttalandet gör det möjligt att se resurserna direkt via webbläsaren, 2nd och 3rd block gör att resurserna kan ses via den ursprungliga webbplatsen (både nakna och www-underdomäner), resten av blocken utom sökningen?q och det sista blocket tillåter sökmotors sökrobotar att komma åt och indexera resurserna, vilket är mycket viktigt för att indexera bilderna i både google-bilder och bing-bilder. Sökningen?q tillåter googles cachetjänst att komma åt och spara resurserna tillsammans med sidan, och därmed kan sidan nås direkt via Googles sökresultat när webbplatsen är offline.
plats ~ * \.(css | gif | ico | jpeg | jpg | js | png | woff | woff2 | ttf | ttc | otf | eot) $if ($ http_referer !~ "^ $")
ställa in $ rule_0 1 $ rule_0;
if ($ http_referer !~ "^ http: // nucuta.com /.* $ ")
ställa in $ rule_0 2 $ rule_0;
if ($ http_referer !~ "^ http: // nucuta.com $ ")
ställa in $ rule_0 3 $ rule_0;
if ($ http_referer !~ * "google.")
ställa in $ rule_0 4 $ rule_0;
if ($ http_referer !~ * "sök?q = cache ")
ställa in $ rule_0 5 $ rule_0;
if ($ http_referer !~ * "msn.")
ställa in $ rule_0 6 $ rule_0;
if ($ http_referer !~ * "yahoo.")
ställa in $ rule_0 7 $ rule_0;
if ($ http_user_agent !~ * "googlebot")
ställa in $ rule_0 8 $ rule_0;
if ($ http_user_agent !~ * "msnbot")
ställa in $ rule_0 9 $ rule_0;
if ($ http_user_agent !~ * "slurp")
ställa in $ rule_0 10 $ rule_0;
if ($ rule_0 = "10987654321")
retur 403;
ha sönder;
Metod 2: Metod Valid_Referers
Giltiga referenser är det mest bekväma och den allmänt erkända metoden för att enkelt blockera ogiltiga referenser. Den innehåller bara två rader jämfört med den tidigare metoden och är mycket flexibel. Det är dock lite svårt att smälta eftersom det handlar om reguljära uttryck och en annan mekanism för att blockera förfrågningar från ogiltiga referenser.
- Kopiera följande kodavsnitt mellan och i början av huvudplaceringsblocket.
- Ersätt domännamnslistan med de tillåtna domännamnen, till exempel google, bing eller dina egna domäner etc.
- Spara och stäng standardfilen och följ sedan 3, 4 steg i "Förberedelsefasen" för att göra ändringar som träder i kraft.
valid_referers inga blockerade server_names
*.Linux.com linux.* www.Linux.com / om /~ \.linux \.;
om ($ invalid_referer)
retur 403;
Den har huvudsakligen två kodblock, valid_referers, och if-villkorligt uttryck med invalid_referer-variabel. Som standard används detta kodblock däremellan och i början av platsblocket innan exekvering av någon annan kod, men det kan också användas på någon annan plats, till exempel mellan ett platskodblock med reguljära uttryck till upptäcka specifika filformat för att göra blockeringen relevant för ovannämnda filformat, som i metod 1. Som tidigare förklarats innehåller metoden bara två kodblock, det första kodblocket innehåller tre nyckelord, det första är "ingen" när referensfältet saknas i HTTP-förfrågan, det andra "blockeras" när referensfältet raderas av alla mittpartier, såsom en proxy, brandvägg etc., det tredje nyckelordet är för att specificera giltiga domännamn.
När domännamnet börjar med “~” -symbolen betraktas det som ett reguljärt uttryck och därmed kan mycket komplexa mönster användas, men det kan vara svårt att förstå om reguljära uttryck inte är väl kända. Om inget av villkoren uppfylls i valid_referers uttalande, är variabeln invalid_referer satt till tom sträng, annars är den inställd på 1, vad det betyder om den kommande begäran inte innehåller något referensfält, eller om nginx identifierade att referensfältet har tagits bort av en brandvägg eller en proxy, eller om referensfältet är inställt på de angivna domänerna (giltig domännamnslista) är ogiltig referensvariabel inställd på tom sträng, och därmed är dess om villkor inte körs. Men om förfrågan kommer från en domän som inte anges i uttrycket valid_referers som en giltig domän, blockeras den.
SLUTSATS
Var noga med att överväga detta innehåll och förhindra hotlinking på dina Nginx-webbplatser.