Evo_nginx_boost extension
Wstęp
Wtyczka Evo_nginx_boost pozwala na cachowanie stron generowanych w TYPO3 za pomocą memcache. Moduł może pracować w dwóch trybach:
- z serwerem proxy NGINX, zobacz diagram
- standalone – za pomocą prostej modyfikacji typo3_src/index.php można odczytywać memcachowane strony bezpośrednio z memcache. Proces PHP wysyła do przeglądarki dokładne to co jest zapisane w memcache. Dla uzyskania wysokiej wydajności dane nie są w żadne sposób serializowane ani przetwarzane.
Wymagania
- PHP 5.X z obsługą memcache
- opcjonalnie serwer NGINX
Screenshoty
Instalacja
Pobierz wtyczkę z TER i zainstaluj. W zależności od trybu pracy wybierz odpowiednią konfiguracji opisaną w następnej sekcji.
Jeśli zdecydujesz się na instalację standalone edytuj plik typo3_src/index.php i dodaj pod linią error_reporting (E_ALL ^ E_NOTICE); poniższy kod:
require_once(’typo3conf/ext/evo_nginx_boost/tx_evonginxboost_index.php’);
Alternatywne rozwiązanie z użyciem NGINXa jest o wiele bardziej wydajne ale wymaga instalacji dodatkowego oprogramowania na serwerze. Opis całej architektury oraz zasady działania znajdziesz w artykule Jak przyspieszyć działanie TYPO3 przy pomocy nginx’a.
Konfiguracji evo_nginx_boost
| Property: | Data type: | Description: | Default: |
|---|---|---|---|
| enable | string | enable disable memcaching | 1 |
| forceTimeoutToAllPages | int | set default memcache expiration time (has priority over TYPO3 setting) | 0 |
| disableCacheForLoogedUsers | int | enable/disable memcaching for logged users | 0 |
| cleanOnClearAllCache | int | if set, memcache is cleared when backend user click clear cache | |
| setPageCacheTimeout OverrideAllTypoSettings (deprecated, always set to true) | int | if you enable this option, you can override all expires time from your user_int extension, fg if you have page with four extensions and each extension calls static function:
if (method_exists(’tx_evo_nginx_boost’, ’setPageCacheTimeout’) evo_nginx_boost set expire time to the lowest value set in all 4 plugins |
1 |
| _mainServerIP | string | memcache server ip | |
| _mainServerPort | string | memcache server port | |
| _mainServerPersistent | int | enable persistant connection | 1 |
| _mainServerTimeout | string | memcache server connection timeout | 1 |
| memcacheSignature | int | add signature to end o pages | 1 |
| memcacheSignatureText | string | text of signature fg “CACHED BY ME |
1 |
| excludedUrls | array | Set in ext_localconf. This is array of urls which should be excluded from memcaching. Let say you have confirmation message after successfuly saving post in user’s blog. Page with message “your post was saved” will be memcached. You can add parameter message=1 and put this in array. Evo_nginx_boost exclude this url from memcaching. | 1 |
| cleanupAllowedFromIP | string | list of comma separated ip addresses from which Garbage Collector can be run [eID] | 1 |
| garbageCollectorProbability | float | probability of starting garbabge collector, 1.0 = 1% | 1.0 |
| useUrlPrefixClear | int | if set, when POST is sent, cache is cleared for urls starting with request_url (referrer) instead page id, fg if you sent POST from page www.mysite.com/mysubpage/article1/ extension clears cache for pages www.mysite.com/mysubpage/article1/ www.mysite.com/mysubpage/article1/some/ www.mysite.com/mysubpage/article1/some2/ etc | 0 |
| onlyLocalhost | string | set if memcache nginx and apacha are on the same server, domain is not added to memcache key | 1 |
| addCachedAnchorFlag | string | add special tag before closing body tag, you can check from js if page is from memcache | 1 |
| debug | int | start debugging | 0 |
| debugAllowedIP | string | list of comma separated ip addresses from which debug is generated | 1 |
| debugOnlyErrorsLogging | int | if set only errors are logged (browser and db table) | 0 |
| debugWriteToDB | int | if set, debug is written to db | 0 |
| debugWriteToOutput | int | if set, debug is written to browser (html source, bottom of page) | 0 |
| extendTypo3indexphp | int | set if you don’t want to use nginx, typo3_src/index.php should be changed | 0 |
Per strona konfiguracja
Każda strona w drzewie może mieć różne konfiguracje cachowania. Jeśli nic nie zostanie ustawione evo_nginx_boost czyta ustawienia z config.cache_period. Ustawienia memcachowania mogą być różnie określane dla użytkowników zalogowanych i nie zalogowanyc. Przykład: w czasie dużego ruchu na forum czas cachowania dla niezalogowanych może być ustawiony na 120s gdzie użytkownik zalogowany może mieć wyłączone memcachowanie całkowicie.
Zarządzanie memcachem.
Ręczne usuwanie danych z memcache:
1. Standardowa funkcja Clear FE cache
2. Usuwanie memcache per strona, dostępne w menu kontextowyw dla każdej strony w drzewie. Zobacz screen.
3. Usuwanie memcache rekursywnie dla gałęzi, dostępne w menu kontekstowym. Zobacz screen.
Usuwanie automatyczne podczas wysyłania POSTow:
1. Memcache jest usuwany dla strony do której został wysłany został POST, chyba że POST został dodany do tablicy noClearCachePost, dostępnej w ext_localconf.php
-
'dontClearCache',
-
'logintype',
-
);
Dodatkowo dostępna jest też tablica excludedPost w której można wpisać rodzaje POSTów, które evo_nginx_boost zapisze do memcache jako zwykłe wywołanie strony. Takie rozwiązanie może być przydatne kiedy mamy wyszukiwarkę i chcemy memcachować wyniki.
-
'search',
-
);
Pomijanie URli
Bardzo przydatną funkcją jest również możliwość pomijania URLi z memcachowanie. Jeśli na stronie mam captche i chcemy aby memcache nigdy nie memcachowal tych wywołań, możemy dodać odpowiedni wpis do tablicy excludedUrls, również dostępnej w ext_localconf.php
-
//'/ajax_load_id=[0-9]+/',
-
'/captcha.php?/',
-
);
Pliki do pobrania:
-nginx configuration file
-wtyczka evo_nginx_boost ver 1.9.5




no comments yet???
you can find comments here:
http://techblog.evo.pl/2009/03/21/how-to-boost-speed-up-your-typo3-website-with-nginx/