php jak 'wyjść' przez proxy ? |
php jak 'wyjść' przez proxy ? |
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.
|
|
|
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 |
|
|
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.
|
|
|
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 |
|
|
28.12.2007, 09:44:02
Post
#5
|
|
Grupa: Zarejestrowani Postów: 27 Pomógł: 0 Dołączył: 27.12.2007 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. 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.
|
|
|
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 |
|
|
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.
|
|
|
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 |
|
|
28.12.2007, 11:18:50
Post
#9
|
|
Grupa: Zarejestrowani Postów: 27 Pomógł: 0 Dołączył: 27.12.2007 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. 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.
|
|
|
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 |
|
|
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.
|
|
|
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 |
|
|
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.
|
|
|
Wersja Lo-Fi | Aktualny czas: 27.05.2024 - 01:25 |