PDA

Bekijk Volledige Versie : In 1 keer een hele grote hoeveelheid requests



Vanderblom
06/12/11, 19:19
Beste,

Een gebruiker heeft een site dat gaat over muziek, echter host hij ook een plaatje van deze artiest.
Echter is er nu een site die dat plaatje heeft verwerk in de online web player (http://www.radiorecord.ru/player/)

Echter als er een nummer langs komt wordt in 1 keer even 7000 keer dat plaatje opgehaald.
Refferer blocking, hotlink protection, niets helpt. (de hoeveelheid requests doet het hem)

De server blijft vast lopen (swap loopt vol).

Zijn er mensen die mij kunnen helpen om dit probleem op te lossen ?

Het betreft een DirectAdmin server, 4 cores, 4 GB intern geheugen.

Stefan

groenleer
06/12/11, 19:56
Heb je al geprobeerd om de server een redirect naar een free public reverse proxy systeem te sturen?
Bijvoorbeeld CoralCDN http://www.coralcdn.org/ dat *.nyud.net gebruikt voor reverse proxy.

Alternatief is om de gebruiker de link naar het plaatje direct aan te laten passen naar een cdn.

Yourwebhoster
06/12/11, 20:03
Even ter duidelijkheid: zijn er 7000 luisteraars of denk je dat het om een aanval gaat?

patrickekkel
06/12/11, 20:06
Kan je die server ip niet blokken in je iptables ?

Yourwebhoster
06/12/11, 20:11
Kan je die server ip niet blokken in je iptables ?
En vervolgens kan niemand meer op de server?

Vanderblom
06/12/11, 20:11
Er wordt daar een plaatje getoont die ik op mijn server host.
Het gaat om 7000 requests soms naar 1 plaatje, dat kan ik zie in het apache logboek.

Eigenaar is al gemaild maar krijgen we niet te pakken.

Yourwebhoster
06/12/11, 20:12
Er wordt daar een plaatje getoont die ik op mijn server host.
Het gaat om 7000 requests soms naar 1 plaatje, dat kan ik zie in het apache logboek.

Eigenaar is al gemaild maar krijgen we niet te pakken.
Kan je zien of dit veelal dezelfde IP's zijn of dat dit allemaal verschillende IP's zijn? En heb je server-status bekeken tijdens het vollopen van de server?

Vanderblom
06/12/11, 20:22
Kan je zien of dit veelal dezelfde IP's zijn of dat dit allemaal verschillende IP's zijn? En heb je server-status bekeken tijdens het vollopen van de server?

Het zijn alle ip adressen van over de hele wereld, de gekste landen kom ik tegen.
Als de server vol begint te lopen en ik bekijk de server status pagina zie ik dat hij soms wel bezig is met 260 reqquets per seconden.
En op dat moment loopt de swap ook vol, cpu doet niet veel.

Ramon Fincken
06/12/11, 20:39
ik zou googlen op htaccess image hotlink protect

Vanderblom
06/12/11, 20:47
Allemaal al geprobeerd en gebruikt. Lost niets op. Staat ook al in het eerste bericht ;)
Is er softwarematig geen oplossing die iets kan betekenen ?

emp1re
06/12/11, 21:00
plaatje renamen geen optie dan ?

Geert-Jan
06/12/11, 21:01
Stefan,


Echter als er een nummer langs komt wordt in 1 keer even 7000 keer dat plaatje opgehaald.


Lees ik dat bij het opvragen van 1 nummer de image 7000 keer opgevraagd wordt?
- Zo ja, wat is daar dan de reden van?
- Staan er ook x.000 request in de logs?



Eigenaar is al gemaild maar krijgen we niet te pakken.

En? daar is een functie voor toegevoegd: 'suspend'

The-BosS
06/12/11, 21:07
Allemaal al geprobeerd en gebruikt. Lost niets op. Staat ook al in het eerste bericht ;)
Is er softwarematig geen oplossing die iets kan betekenen ?

Het is een beetje een omslachtige oplossing, maar je zou bvb een php script kunnen maken dat kijkt naar de reffer url en het plaatje toont indien de reffer toegestaan is en het ip toevoegt in de firewall indien het niet toegestaan is. Dan via htacess foto.jpg of foto.png naar het php script verwijzen en dan wordt automatisch na het 1ste bezoek de gebruiker geblokt in de firewall als deze afkomstig is van de webplayer. Let er wel even op dat dit een idee is en ik het dus nooit getest heb.

Vanderblom
06/12/11, 21:11
plaatje renamen geen optie dan ?

Nee, de aanvragen blijven komen en moeten roepen vervolgens alsnog een grote hoeveel data op.
Ik heb de plaatjes nu 1x1 pixel gemaakt, misschien dat dat iets oplost.


Stefan,


Lees ik dat bij het opvragen van 1 nummer de image 7000 keer opgevraagd wordt?
- Zo ja, wat is daar dan de reden van?
- Staan er ook x.000 request in de logs?


En? daar is een functie voor toegevoegd: 'suspend'

De reden is dat het een radio station is in rusland dat schijnbaar erg poplair is.
Er staat daadwerkelijk inderdaad duizenden keren de aanvraag van het plaatje in de logs.

Met de eigenaar bedoelde ik meer de eigenaar van het russische radio station. Ik kan site wel suspenden maar de vraag is of dat iets oplost. De hoeveel aanvragen blijven gewoon komen in dat geval.

The-BosS
06/12/11, 21:12
Stefan,


Lees ik dat bij het opvragen van 1 nummer de image 7000 keer opgevraagd wordt?
- Zo ja, wat is daar dan de reden van?
- Staan er ook x.000 request in de logs?


En? daar is een functie voor toegevoegd: 'suspend'

Denk dat je het niet goed snap, de TS heeft een klant die een site host waar een image op staat. Een webplayer die niet van de klant of de TS is gebruikt het plaatje (image) van die artiest om te verwerken in die webplayer. Aangezien de webplayer een website is, is er bij elke refresh een request naar de TS zijn server. Die 7000 request zijn dus het aantal mensen die op dat moment naar die webplayer luisteren.

Reden hoe dat komt is simpel, er is een script voor webplayers dat gebruik maakt van google image search om fotos van de artiesten weer te geven. Als je dus toevallig de 1ste hit bent voor die artiest in google search wordt die url gebruikt in de webplayer.

R. Persoon
06/12/11, 21:58
Kun je voor nu niet even de URL van het plaatje ombuigen (en op de betreffende website van je klant aanpassen uiteraard), zodat in ieder geval de huidige URL die ze van het plaatje hebben geïndexeerd niet meer werkt, en dus hopelijk verwijderd wordt bij het radiostation? Dan toch hopen op een reactie van het radiostation, maar mocht het principe werken zoals hierboven beschreven met een script voor webplayers zou ik eerder een noindex op het plaatje gooien zodat hij niet meer geïndexeerd wordt door google images.

mind
06/12/11, 22:50
Ik zou in elk geval beginnen met de ServerLimit (voor prefork MPM) of MaxClients (voor worker MPM) te verlagen in je httpd.conf. Waarbij prefork het meest waarschijnlijk is...

Hiermee voorkom je dat er te veel apache processen gestart worden, die de server niet aan kan gezien het extreme swappen.

Je server is dan tijdens een request hoos misschien wel even slecht bereikbaar, maar loopt er niet meer op vast.

xaban
07/12/11, 02:34
- Waarom werkt hot linking protection niet?
- Als je de plaatje kan wijzigen naar 1x1 pixel, kan je hem net zo goed verwijderen/renamen?

PimEffting
07/12/11, 08:20
Vervang anders het plaatje door een ander plaatje, met bijvoorbeeld "deze website steelt bandbreedte" of een ander type plaatje (je creativiteit laat ik hier even vrij ;-)
Moet je zien hoe snel het wordt aangepast. Niet zo netjes, maar wel effectief vermoed ik.

Ramon Fincken
07/12/11, 09:13
Allemaal al geprobeerd en gebruikt. Lost niets op. Staat ook al in het eerste bericht ;)
Is er softwarematig geen oplossing die iets kan betekenen ?

Maar waarom werkt hotlink protection niet? Je vervangt je plaatje door niets of een image die zegt dat er bandbreedte gestolen wordt.
Je zou zelfs een (dat is niet geheel netjes) redirect naar een plaatje op de site van de player kunnen doen.

Yourwebhoster
07/12/11, 09:23
Je zou zelfs een (dat is niet geheel netjes) redirect naar een plaatje op de site van de player kunnen doen.

Waarom zou dat niet netjes zijn? Eigen schuld dikke .... toch? Als de eigenaar van die site niet reageert zou ik de grootste file die ik kan vinden daar pakken en daar naar toe redirecten. Als je het netjes wilt doen doe je een redirect naar het logo van de website.

@Vanderblom zeker weten dat het niet werkt? Wil anders er wel even naar kijken voor je.

Vanderblom
07/12/11, 11:40
Hotlink werkt niet goed omdat er ook een verkorte URL script wordt gebruikt.
Hij gaat namelijk (waarom weet ik niet) een 404 error pagina inladen die op de site staat, hij kan hem echter niet weergeven omdat het geen plaatje is. (dat zie ik aan de grootte van het verzoek in het logboek)

Als je naar je browser gaat en je typt het URL van het plaatje in, en hij bestaat niet dan laat hij een 404 pagina zien in de vorm van de layout van de site.

Ik heb nu het plaatje 1x1 pixel gemaakt, 10 kb groot ongeveer.
Zag net 6000 aanvragen binnenkomen, die heeft hij goed kunnen verwerken.

Ik ga verder met die http config verder, zit wel wat in, goeie tip! :)

Yourwebhoster
07/12/11, 11:41
H
Zag net 6000 aanvragen binnenkomen, die heeft hij goed kunnen verwerken.

Ik ga verder met die http config verder, zit wel wat in, goeie tip! :)
Waarom wil je überhaupt nog een plaatje hebben en geen redirect of iets dergelijks?

Ramon Fincken
07/12/11, 11:47
Dan moet je je hotlink aanpassen.

Niet ALS van site X DAN reject.
Maar:
ALS NIET van mijnsite DAN reject

t.bloo
07/12/11, 12:07
10kB is nog veel, gewoon een bestand neerzetten van 0kB, dat werkt net zo goed


(maar alle andere suggesties zijn beter)

Mark17
10/12/11, 23:46
Zet er Varnish bij voor, die heeft met dergelijke aantallen requests relatief weinig moeite. Enige nadeel is dat je mogelijk wat instel werk hebt en ik het nog niet uitgezocht wat de gevolgen zijn voor de logging van dataverkeer binnen bijvoorbeeld DirectAdmin.

crossplatform
12/12/11, 15:12
Misschien zijn deze twee opties een oplossing: mod_rewrite

Via een .htaccess filetje:

RewriteEngine on
RewriteRule ^/images/(.*)$ http://s3.amazonaws.com/images/$1 [R,L]

OF: mod_proxy module aanzetten binnen apache.

Vervolgens de site config waarbij je de images folder proxied naar bijvoorbeeld Amazon S3:

ProxyPass /images/ http://example.s3.amazonaws.com/images/

LET OP: dit is ff uit het bolle hoofd... niet getest in real life...

Ramon Fincken
12/12/11, 15:19
leuk ... maar eh dit gaat om ongewenste traffic, waarom zou je dat plaatje dan bij amazon plaatsen?