Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> php jak 'wyjść' przez proxy ?
Mario1973
post 27.12.2007, 22:05:26
Post #1





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 27.12.2007

Ostrzeżenie: (0%)
-----


Mam drobny skrypcik pobierający pliki graficzne z jakiegoś serwera przez : readfile (http://www.costam.com);

Chciałbym pobierać te pliki przez mój serwer proxy. Często zapytania są o te same pliki i mógłbym je ciągnąć z cache.

Jak (na co) zmienić to readfile, aby pobierac przez proxy ?




M

OK, zkurlałem to sobie :

curl_setopt($ch, CURLOPT_PROXY, 'xx.xx.xx.xx:8080' );


ale niestety mój proxy i tak tego nie cache-uje .....a chciałem keszować miniaturki stron z girafa.com - tak aby zmieścic się w darmowych 2000 wyswietleń dziennie.


M


--------------------
Serwery gier, Serwery Teamspeak, Serwery wow - wszystko co może potrzebować rasowy gracz.
Go to the top of the page
+Quote Post
seaquest
post 27.12.2007, 22:14:27
Post #2





Grupa: Przyjaciele php.pl
Postów: 790
Pomógł: 7
Dołączył: 6.02.2003
Skąd: Polska

Ostrzeżenie: (0%)
-----


Możesz to rozwiązać inaczej. Pytaj po prostu swój serwer o miniaturkę. A na swoim serwerze sprawdzaj czy ją masz zcachowaną. Jeśli nie, ściągasz, tworzysz cache, zwracasz. Jeśli tak, zwracasz cache.


--------------------
Michał Płachta
Warsztat: Mac OS X Leopard, PostgreSQL, Text Mate, Retrospectiva + SVN
Go to the top of the page
+Quote Post
Mario1973
post 27.12.2007, 22:51:03
Post #3





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 27.12.2007

Ostrzeżenie: (0%)
-----


Czyli sugerujesz, żebym zrobił sobie cache .... ok, może jakoweś rozwiązania podobne widziałeś ?

Pytam o sugestie odnośnie zapis i póżniej odszukanie tego - jak to zrealizować. (nie jestem biegły w temacie. Jestem na etapie kodu maszynowego z Commodore 64, zatem dość archaiczne rozwiązania mi mogą przychodzić do głowy)



M


--------------------
Serwery gier, Serwery Teamspeak, Serwery wow - wszystko co może potrzebować rasowy gracz.
Go to the top of the page
+Quote Post
seaquest
post 27.12.2007, 23:27:13
Post #4





Grupa: Przyjaciele php.pl
Postów: 790
Pomógł: 7
Dołączył: 6.02.2003
Skąd: Polska

Ostrzeżenie: (0%)
-----


Na serwerze "proxy" stawiasz serwer http i wywołujesz obrazek poprzez np.
http://serwer-proxy/proxy.php?obrazek=adres-strony-www

Plik proxy.php sprawdza czy taki obrazek ma ściągnięty, jak nie, to ściąga i zwraca. Jeśli tak - to po prostu zwraca.


--------------------
Michał Płachta
Warsztat: Mac OS X Leopard, PostgreSQL, Text Mate, Retrospectiva + SVN
Go to the top of the page
+Quote Post
Mario1973
post 28.12.2007, 09:44:02
Post #5





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 27.12.2007

Ostrzeżenie: (0%)
-----


Cytat(seaquest @ 27.12.2007, 23:27:13 ) *
Na serwerze "proxy" stawiasz serwer http i wywołujesz obrazek poprzez np.
http://serwer-proxy/proxy.php?obrazek=adres-strony-www

Plik proxy.php sprawdza czy taki obrazek ma ściągnięty, jak nie, to ściąga i zwraca. Jeśli tak - to po prostu zwraca.



Tak, to zupełnie rozumiem. Prędzej wątpliwość wzbudza użyte przez Ciebie "proxy.php" - to tylko przykładowa nazwa, czy konkretny istniejący skrypt.

Po pierwszym poście zrozumiałem, że sam mam sobie wydłubać swoje proxy, a niezbyt kumałem jak to rozwiązać raczej od strony sposobu 'spisu plików' i jego przeszukiwania . W końcu plików nie będzie wiele - ze 2000.

Przeraziła mnie za to ilość pobrań - już teraz jest ponad 4000 dziennie - pewnie wina robotów...... Serwerek i łącze to wyciągnie bez problemu - tylko kwestia, żeby to elegancko i wydajnie napisać...

M


--------------------
Serwery gier, Serwery Teamspeak, Serwery wow - wszystko co może potrzebować rasowy gracz.
Go to the top of the page
+Quote Post
seaquest
post 28.12.2007, 10:11:16
Post #6





Grupa: Przyjaciele php.pl
Postów: 790
Pomógł: 7
Dołączył: 6.02.2003
Skąd: Polska

Ostrzeżenie: (0%)
-----


proxy.php to tylko przykładowa nazwa


--------------------
Michał Płachta
Warsztat: Mac OS X Leopard, PostgreSQL, Text Mate, Retrospectiva + SVN
Go to the top of the page
+Quote Post
Mario1973
post 28.12.2007, 10:41:44
Post #7





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 27.12.2007

Ostrzeżenie: (0%)
-----


Jak byś rozwiązał spis zawartości cache i sprawdzanie ?

Podaj tylko sugestie - metodę.

Spis robić w pliku i przeglądać go po prostu ? Czy może bez spisu, a przeglądać zawartość katalogu z plikami ?

M


--------------------
Serwery gier, Serwery Teamspeak, Serwery wow - wszystko co może potrzebować rasowy gracz.
Go to the top of the page
+Quote Post
seaquest
post 28.12.2007, 10:44:30
Post #8





Grupa: Przyjaciele php.pl
Postów: 790
Pomógł: 7
Dołączył: 6.02.2003
Skąd: Polska

Ostrzeżenie: (0%)
-----


Możesz trzymać w bazie danych albo po prostu użyć file_exists, gdzie nazwa pliku to np md5 z adresu strony.


--------------------
Michał Płachta
Warsztat: Mac OS X Leopard, PostgreSQL, Text Mate, Retrospectiva + SVN
Go to the top of the page
+Quote Post
Mario1973
post 28.12.2007, 11:18:50
Post #9





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 27.12.2007

Ostrzeżenie: (0%)
-----


Cytat(seaquest @ 28.12.2007, 10:44:30 ) *
Możesz trzymać w bazie danych albo po prostu użyć file_exists, gdzie nazwa pliku to np md5 z adresu strony.



oooo podoba mi się to file_exists - z tym to wygląda na prostą sprawę. Czy widzisz jakieś zonki, czy jest to naprawdę bardzo proste ?

- odczytać zapytanie
- zrobić MD5 z adresu
- file_exists ? jeśli nie , to pobrać z girafy i zapisać
- wziąć plik z nazwą MD5

i wsio ?

aaa jak wdrożyć czyszczenie keszu co np 12 godzin, żeby uwzględniać zmiany w obrazkach - Jak ustalić upływ czasu ?

M


--------------------
Serwery gier, Serwery Teamspeak, Serwery wow - wszystko co może potrzebować rasowy gracz.
Go to the top of the page
+Quote Post
seaquest
post 28.12.2007, 11:33:33
Post #10





Grupa: Przyjaciele php.pl
Postów: 790
Pomógł: 7
Dołączył: 6.02.2003
Skąd: Polska

Ostrzeżenie: (0%)
-----


md5(nazwa)_timestamp().jpg

timestamp() sprawdzasz przy odczytywaniu i jak jest za stary to kasujesz obrazek.


--------------------
Michał Płachta
Warsztat: Mac OS X Leopard, PostgreSQL, Text Mate, Retrospectiva + SVN
Go to the top of the page
+Quote Post
Mario1973
post 28.12.2007, 14:47:08
Post #11





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 27.12.2007

Ostrzeżenie: (0%)
-----


OK, dziękuję za bardzo pomocne odpowiedzi.

Na koniec jeszcze ostatnie pytanie, czy file_exists przy około 2000 plikach nie będzie jakoś szczególnie męczył serwera ? Czasochłonne to ?

M


--------------------
Serwery gier, Serwery Teamspeak, Serwery wow - wszystko co może potrzebować rasowy gracz.
Go to the top of the page
+Quote Post
seaquest
post 28.12.2007, 21:16:03
Post #12





Grupa: Przyjaciele php.pl
Postów: 790
Pomógł: 7
Dołączył: 6.02.2003
Skąd: Polska

Ostrzeżenie: (0%)
-----


Nie, bo wykorzystuje indeks partycji na jakiej znajdują się pliki. Więc jeśli wybierzesz np reiserfs w linuxie to będzie śmigać.


--------------------
Michał Płachta
Warsztat: Mac OS X Leopard, PostgreSQL, Text Mate, Retrospectiva + SVN
Go to the top of the page
+Quote Post
Mario1973
post 28.12.2007, 23:06:38
Post #13





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 27.12.2007

Ostrzeżenie: (0%)
-----


Serdecznie dziękuję za pomoc w naprowadzaniu , skrypcik zrobiłem i działa poprawnie.

jeszcze wdrażam kasowanie, gdy plik jest starszy niż 1 dzień :

#jesli plik ma min 1 dzien to kasuj
if((time()-filemtime($filename))>86400)
unlink ($filename);

będzie OK ?

M


--------------------
Serwery gier, Serwery Teamspeak, Serwery wow - wszystko co może potrzebować rasowy gracz.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 27.05.2024 - 01:25