ul. Strzegomska 2-4
53-611 Wrocław
NIP 8992786490
KRS 0000608120
REGON 363987723
Global4Net Sp. z o. o.
+48 71 358 41 00
© 2009 – Global4Net. All Rights Reserved.
Oczywiście jest kilka kluczowych elementów na których należy się skupić, takich jak używane oprogramowanie OS – wysoce rekomendowane jest użycie Linuxa, natomiast nie zaleca się używania serwerów Windowsowych dla Magento, system będzie działał jednak będzie mniej wydajny, może powodować problemy z uprawnieniami plików czy działaniem niektórych części kodu. Ważne jet ograniczenie liczby serwisów do niezbędnego minimum na serwerze produkcyjnym, celem równoczesnego ograniczenia liczby działających procesów. Użycie XFS i ReiserFS, konfiguracja ustawień MaxClients – celem lepszej kontroli liczby podprocesów.
Przy optymalizacji Magento nie jest rekomendowane użycie SymLinksIfOwnerMatc, lepiej jest używać Options +FollowSymLinks +SymLinksIFOwnerMatch dla poszczególnych katalogów. Warto włączyć moduły Apache deflate and header, co można zrobić za pomocą poniższych komend:
sudo a2enmod deflate sudo a2enmod header
Moją ulubioną metodą jest jednak optymalizacja przy użyciu domyślnego pliku .htaccess dołączanego przez Magento. Za pomocą kilku linijek kodu możemy osiągnąć nieprawdopodobne wręcz efekty wydajnościowe.
Poniższa sekcja włącza moduł mod_deflate dla Apache, który kompresuje tekst, css i javascript zanim zostaną wysłane do przeglądarki. Efektem tej operacji jest mniejsze pobieranie. Celem włączenia wystarczy odkomentować odpowiednie linijki w pliku.
############################################ ## enable apache served files compression ## http://developer.yahoo.com/performance/rules.html#gzip # Insert filter on all content SetOutputFilter DEFLATE # Insert filter on selected content types only AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript # Netscape 4.x has some problems... BrowserMatch ^Mozilla/4 gzip-only-text/html # Netscape 4.06-4.08 have some more problems BrowserMatch ^Mozilla/4\.0[678] no-gzip # MSIE masquerades as Netscape, but it is fine BrowserMatch \bMSIE !no-gzip !gzip-only-text/html # Don't compress images SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary # Make sure proxies don't deliver the wrong content Header append Vary User-Agent env=!dont-vary
Przeglądarki używają wygasania nagłówków celem określenia jak długo odpowiednie komponenty strony powinny być cachowane. Elementy statyczne jak np obrazy powinny mieć długie terminy wygasania, jednak terminy wygasania przydają się również w przypadku pozostałych komponentów strony. Celem włączenia tej funkcjonalności ponownie należy odkomentować odpowiednie linijki kodu w pliku htaccess.
############################################ ## Add default Expires header ## http://developer.yahoo.com/performance/rules.html#expires ExpiresActive On ExpiresDefault "access plus 1 year"
Etags są sposobem dla przeglądarek na sprawdzenie komponentów cachowania całej witryny podczas kolejnych wizyt. Mogą jednak wpłynąć na znaczne spowolnienie strony jeżeli nie zostały zaimplementowane odpowiednio w klastrze. Najlepiej jest po prostu wyłączyć Etags celem uniknięcia spowalniania serwera. Można to zrobić w następujący sposób w pliku htaccess.
############################################ ## If running in cluster environment, uncomment this ## http://developer.yahoo.com/performance/rules.html#etags FileETag none
Dodatkowo oprócz optymalizacji samego pliku htaccess warto również skorzystać z kompilowania plików css i javascript. Można to zrobić w panelu administracyjnym w:
System -> Konfiguracja -> Programista -> Ustawienia Javascript zmieniamy opcję Połącz pliki Javascript na tak,
System -> Konfiguracja -> Programista -> Ustawienia CSS zmieniamy opcję Połącz pliki CSS na tak.
Warto również pomyśleć o włączeniu płaskiego katalogu w panelu administracyjnym, który zoptymalizuje wykonywanie zapytań do bazy danych.
Oczywiście należy pamiętać że każdy sklep jest inny i czasami z różnych powodów nie wskazane jest użycie któregoś z wskazanych tu punktów, wszelkie takie sytuacje powinny zostać rozpoznane indywidualnie dla danego wdrożenia.
Koniecznie przeczytaj również inne artykuły jak optymalizować Magento pod SEO.
Napisz do nas