Skocz do zawartości

[Modyfikacje] Cache katalogu


Rekomendowane odpowiedzi

Jak każdy wie, katalogi są atakowane różnymi robakami sieciowymi zbierającymi maile, jak również wyszukiwarek. A większość osób posiadających katalogi trzyma je na tanich serwerach, których admini się skarżą, że są nie optymalne itp. Dlatego postanowiłem poszukać rozwiązania. Niektórzy twierdzą, że skrypt jest bardzo optymalny, ale czy na pewno, jak non stop łączy się z bazą danych, pobierając ciągle te same informacje, regulamin, szczegóły wpisu itp.

Zachęcam do testowania następującego rozwiązania, czas instalacji około 5 minut.

1 .Pobieramy paczkę z plikami, wrzucamy ją na serwer do katalogu gdzie jest zainstalowany skrypt otwarty.pl mini;

2. Nadajemy chmod 777 na folder cache;

3. W pliku begin_caching.php możemy ustawić czas oraz można zmienić domyślną nazwę katalogu cache;

4. Otwieramy plik index.php, i w zależności co chcemy cechować zamieniamy:

case "szcz":
include("otwarty_disp/szcz.php");
break;

case "inf":
include("otwarty_disp/inf.php");
break;

itd. na:

case "szcz":
include ("begin_caching.php"); 
include("otwarty_disp/szcz.php");
include ("end_caching.php");
break;

case "inf":
include ("begin_caching.php"); 
include("otwarty_disp/inf.php");
include ("end_caching.php");
break;

5. Koniec, można sprawdzić czy tworzone są pliki w folderze cache.

Zapraszam do testowania, jak również pisania wszelkich uwag, odnośnie działania itp.

Oczywiście jest to przykładowe wykorzystanie cache.

W przykładzie zostały wykorzystany sposób cechowania ze strony, którego nie ja jestem autorem,

lecz tylko pokazałem sposób zastosowania tego w katalogu otwarty.pl mini, który równie dobrze może być

wykorzystany na innych stronach.

https://www.addedbytes.com/php/caching-output-in-php/

Mar.

Polecam katalog SeoPark.pl, katalog AK47 (5 lata w sieci) ...oraz Wirtualne-miasta.eu
"Dopóki nie skorzystałem z Internetu, nie wiedziałem, że na świecie jest tylu idiotów" - Stanisław Lem

Odnośnik do komentarza
Udostępnij na innych stronach

Fajne - bardzo podobnie zrobiłem to w nowym skrypcie choć pierwszy raz się za takie coś zabierałem i nie bardzo wiedziałem czy to co zrobiłem jest ok - a tu patrze praktycznie identyczna metoda. Znajdź jeszcze sposób jak zainstalować dynamiczne moduły (np. linki z SWLa) z jednoczesnym użyciem cache który pobiera przecież statyczne strony z serwera :P - głowiłem się nad tym dobrych parę godzin a wymyśliłem dość prymitywny sposób więc jakbyś miał jakiś pomysł daj znać. :)

iDir - skrypt na katalog stron lub firm - następca projektu SEOKatalog, dostosowany do dzisiejszych standardów, w pełni responsywny, na nowoczesnym frameworku.

Odnośnik do komentarza
Udostępnij na innych stronach

to nie zapomnil sie pozniej z marem podzielic zyskiem z katalogu ;)

:)

Widzę że chyba nikt niczego nie wymyślił - to ja się podzielę swoimi sposobami. Jak już wspomniałem cache CAŁYCH STRON generuje pliki poszczególnych podstron na serwerze - te pliki nie posiadają już kodu php ani zapytań sql tylko wygenerowany wynikowy kod html. Wszystko jest fajnie ale w momencie gdy chcemy używać cache i dynamicznie działających modułów w php - czyli w skrócie: chcemy mieć statyczny cache ale z pewnymi wyjątkami dla niektórych funkcji php - pojawia się problem gdyż powyższy skrypt jak również moja modyfikacja w nowym skrypcie generuje cache na podstawie zawartości bufora ob_start() - czyli po prostu tylko i wyłącznie czysty kod html. Znalazłem w sumie 3 metody - niestety wszystkie moim zdaniem są dość prymitywne dlatego jeśli ktoś chce zabłysnąć pomysłowością to ma teraz pole do popisu :)

1. Kod java script: można zaincludować funkcję w php (np kod wyświetlający SWL) za pomocą kodu js - kod js wykonywany jest po stronie usera więc musi być w zawartości bufora. Niestety użytkownik katalogu musiałby tworzyć osobny plik php na sam kod SWLa, bawić się ze zmienieniem ścieżki i jeszcze wiedzieć jaki kod js wstawić w kod templatki - jak dla mnie zbyt toporne.

2. Kod SWLa (który jest w php przypominam) można dodać do zmiennej ($zmienna = "tu kod") a w kodzie templatki w którym chcemy żeby się wyświetlił dać print($zmienna);. Problemy to: kod php w zmiennej (bezsensu ?) a więc trzeba każdy apostrof poprzedzić "\". Toporne.

3. Ten sposób póki co zastosowałem w nowym skrypcie. User w panelu administracyjnym wkleja kod php SWLa, to jest zapisywane w bazie a w templatce wstawia tag %replace% - w przypadku włączonego cache skrypt zanim wyświetli userowi zawartość statycznego pliku traktuje go str_replace zamieniając tag na to co zostało podane w PA. Prymitywne ale cóż zrobić...

Macie jakieś pomysły ?

iDir - skrypt na katalog stron lub firm - następca projektu SEOKatalog, dostosowany do dzisiejszych standardów, w pełni responsywny, na nowoczesnym frameworku.

Odnośnik do komentarza
Udostępnij na innych stronach

Propozycję którą przedstawiłem bardzo dobrze sprawuje się w przypadku katalogów bez SWLi itp, wykorzystałem to w moim katalogu, który nie ma potrzeby przy każdym wejściu łączyć się z bazą serwując ciągle te same dane, te same wpisy, kategorie.. podkategorie.. nawet nie ma potrzeby czyścić cache po dodaniu nowej strony, ponieważ czas jaki jest ustawiony np. 18000s (5h), nie jest długim okresem czasu. Po tym czasie następuje odświeżenie strony.

Jeśli ktoś korzysta z różnych dynamicznych rotatorów, itp. musi się z tym liczyć. W tedy można zastosować rozwiązanie na cache poszczególnych elementów, czy to samej mapy, statystyki PR, czy tagów.

Przy Twoich pomysłach czasem się zastanawiam, czy nie wydajniejsze i bardziej optymalne jest nie cache :)

Mar.

Polecam katalog SeoPark.pl, katalog AK47 (5 lata w sieci) ...oraz Wirtualne-miasta.eu
"Dopóki nie skorzystałem z Internetu, nie wiedziałem, że na świecie jest tylu idiotów" - Stanisław Lem

Odnośnik do komentarza
Udostępnij na innych stronach

Przy Twoich pomysłach czasem się zastanawiam, czy nie wydajniejsze i bardziej optymalne jest nie cache :)

Hehe - dokładnie tak samo pomyślałem szukając jakiegoś sposobu - 2 pierwsze metody odrzuciłem właśnie dlatego gdyż po prostu były mało wydajne a przecież opcja cache ma właśnie wydajność poprawiać :) - trzeci sposób to jest jakiś kompromis, jest w miarę wygodny a i przepuszczenie całego kodu strony jeszcze przez str_replace nie obniża szybkości. Trudno widocznie inaczej się nie da...

Cachowanie poszczególnych zapytań odpada już na starcie - to dopiero byłoby mało wydajne - tym razem dla programisty ;)

iDir - skrypt na katalog stron lub firm - następca projektu SEOKatalog, dostosowany do dzisiejszych standardów, w pełni responsywny, na nowoczesnym frameworku.

Odnośnik do komentarza
Udostępnij na innych stronach

cache CAŁYCH STRON
:aggressive:

https://www.google.pl/search?hl=pl&q=Ca...mp;aq=f&oq= ??

[dodane]

Cachowanie poszczególnych zapytań odpada już na starcie
Innym się to opłaca.

Nie znam się na pozycjonowaniu, ja tu tylko zużywam transfer i miejsce w sql.

Roman Kluska ujawnia: nadchodzi INFLACYJNY ARMAGEDON!

 

Odnośnik do komentarza
Udostępnij na innych stronach

Proszę bardzo. Tworzenie wielokrotnych kopii identycznych elementów występujących na dużej ilości stron jest niepotrzebnym zapychaniem dysku.

Aaa o to chodzi - system nie tworzy wielokrotnych kopii - np. wchodzisz na stronę główną cache tworzy plik: home-polish.php który obowiązuje wszystkich wchodzących na stronę userów przez następne powiedzmy 60 minut. Wejdziesz w szczegóły jakiegoś wpisu skrypt utworzy site-1124-polish.php itd. Jeśli czas utworzenia danego pliku cache będzie > 60 minut to losowa osoba która wejdzie w tą samą stronę wykasuje stary cache i utworzy świeży który znów będzie obowiązywał przez 60 minut i tak dalej i tak dalej. W ten sposób jeśli przytrafi Ci się zmasowany atak chińskich botów nic się nie stanie bo tylko 1 wejście wygeneruje zapytania SQL i kod w php - następnym otworzy się statyczna strona z wynikowym kodem html. Radykalnie obniża to obciążenie procesora kosztem nieco zwiększonego transferu :aggressive:

iDir - skrypt na katalog stron lub firm - następca projektu SEOKatalog, dostosowany do dzisiejszych standardów, w pełni responsywny, na nowoczesnym frameworku.

Odnośnik do komentarza
Udostępnij na innych stronach

Wejdziesz w szczegóły jakiegoś wpisu skrypt utworzy site-1124-polish.php
Wszystkie podstrony site-***-polish.php zawierają te same elementy nie pochodzące z bazy np.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"https://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="https://www.w3.org/1999/xhtml" xml:lang="en" >

<head>
<meta name="robots" content="index, follow" />

To właśnie niepotrzebnie zapełnia dysk.

Nie znam się na pozycjonowaniu, ja tu tylko zużywam transfer i miejsce w sql.

Roman Kluska ujawnia: nadchodzi INFLACYJNY ARMAGEDON!

 

Odnośnik do komentarza
Udostępnij na innych stronach

Heh w tym sensie masz rację ale czemu nie podałeś w tym samym headerze np. meta tagów które są właśnie unikalne dla każdej podstrony ? Hehe - zbyt wiele jest unikalności na każdej stronie by bawić się w poszczególne cache osobnych zapytań lub kawałków kodu a to co przez to byś zyskał stracisz moim zdaniem w momencie readfile lub include kilkunastu osobnych plików cache i złożeniu tego w całość - to jest oczywiście moja subiektywna opinia nie poparta żadnymi testami na szybkość obu metod ale po prostu uznałem że programista stosując się do zasady "im prostsze tym lepsze" nie powinien sobie zbytnio komplikować pracy.

iDir - skrypt na katalog stron lub firm - następca projektu SEOKatalog, dostosowany do dzisiejszych standardów, w pełni responsywny, na nowoczesnym frameworku.

Odnośnik do komentarza
Udostępnij na innych stronach

ale czemu nie podałeś w tym samym headerze np. meta tagów które są właśnie unikalne dla każdej podstrony ?
Od początku pisałem o elementach identycznych na dużej ilości stron więc nie rozumiem pytania.
zbyt wiele jest unikalności na każdej stronie by bawić się w poszczególne cache osobnych zapytań
Wygeneruj sobie stronę bez danych z bazy to zobaczysz ile jest identycznych.

Nie znam się na pozycjonowaniu, ja tu tylko zużywam transfer i miejsce w sql.

Roman Kluska ujawnia: nadchodzi INFLACYJNY ARMAGEDON!

 

Odnośnik do komentarza
Udostępnij na innych stronach

Sluchajcie, mozna by wylozyc dystrybutyw mini z modami od Mara gotowy?

ze wszystkimi modami.

Odnośnik do komentarza
Udostępnij na innych stronach

Sluchajcie, mozna by wylozyc dystrybutyw mini z modami od Mara gotowy?

ze wszystkimi modami.

Coś o mnie ale nie bardzo udaje mi się to zrozumieć.

@Irek wszystko zależy od struktury serwisu, ale masz rację po to wymyślono PHP, by nie przechowywać tej samej treści,

tylko generować ją podczas żądania. I w przypadku cache katalogu, przy około 10k wpisów wychodzi około 100mb.

Dlatego nie wiem czy zauważyłeś w poprzednich moich modyfikacji tagi, statystyka PR cechuję tylko fragmenty,

bo nie ma najmniejszej potrzeby łączyć się z bazą przy każdym odświeżeniu.

Mar.

Polecam katalog SeoPark.pl, katalog AK47 (5 lata w sieci) ...oraz Wirtualne-miasta.eu
"Dopóki nie skorzystałem z Internetu, nie wiedziałem, że na świecie jest tylu idiotów" - Stanisław Lem

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności