Помощь Производительность Opencart

Тема в разделе "Opencart", создана пользователем spamhost, 27 фев 2016.

Информация :
Внимание форумчане! При создании тем, или выкладывании какой-либо информации проверьте в какой ветке форума вы находитесь! Не путайте Opencart и Opencart2. При несоблюдении данного условия выносится соответствующее наказание! И потом не говорите что вас НЕ ПРЕДУПРЕЖДАЛИ! По возможности используйте обменники mail, yandex, google, dropbox, rghost Дабы избежать просьб перезалить и проблем с рекламой!
  1. spamhost

    spamhost

    Регистр.:
    29 апр 2009
    Сообщения:
    276
    Симпатии:
    145
    Прошу поделиться своим опытом повышения производительности эл. магазинов на базе Opencart.
    Прошу делиться своими достигнутыми результатами оптимизации, напр. в формате:

    Кол-во товаров | Версия OpenCart | Конфиг. серверного окружения (аппар. и прогр.) | Измерение для DESKTOP страниц внутри Категорий https://developers.google.com/speed/pagespeed/insights/

    p.s. Пока на моих VDS KVM (4CPU, 4GB RAM) OC 2.X умирает при кол-ве товаров более 7-10.000 товаров - открытие Категорий занимает по 10-20 секунд, выборка с помощью MegaFilter занимает 15-25 секунд. Создание индексов, попытка настроить MySQL, nginx и различные системы кэширования и др. оптимизация не дает пока заметных результатов.

    Кто-то может уже поделиться опытом успешного запуска OC 2.x на PHP7 ?
     
    Последнее редактирование: 27 фев 2016
    saymong нравится это.
  2. toropa

    toropa

    Регистр.:
    17 ноя 2009
    Сообщения:
    204
    Симпатии:
    58
    у меня меньше товаров. Просто прописал в htaccess пару строк и время загрузки страниц по гуглу выросло на 15%
     
    v.kravez и cyberkekc нравится это.
  3. Maxika

    Maxika Создатель

    Регистр.:
    13 окт 2015
    Сообщения:
    12
    Симпатии:
    3
    Здравствуйте! Для OC 2.1.0.2 вариант такой простой - https://yadi.sk/d/zrIOCrMhpcBkD
    Мне реально помог! Товаров около 1К было - время загрузки почти в 2 раза сократил.
    ### Установка ###
    1. Загрузить файл turbo.php в корневую директорию OpenCart (рядом с config.php).
    2. Перейти по ссылке http://yoursite/turbo.php в браузере и следовать инструкциям на экране.
    3. Этот скрипт должен быть удален сразу же после использования
    Пользуйтесь!
     
    spamhost нравится это.
  4. ZiX

    ZiX Коддинг, Парсинг

    Регистр.:
    9 июл 2011
    Сообщения:
    1.377
    Симпатии:
    584
    какие же это магические строки? Поделитесь)
     
    v.kravez нравится это.
  5. spamhost

    spamhost

    Регистр.:
    29 апр 2009
    Сообщения:
    276
    Симпатии:
    145
    Способ от Maxika с созданием индексов оказался действенным и значительно ускорил выборку. Таблицы конвертировать пока не стал.
     
    saymong нравится это.
  6. Maxika

    Maxika Создатель

    Регистр.:
    13 окт 2015
    Сообщения:
    12
    Симпатии:
    3
    Таблицы конвертить лучше по полной готовности. Хотя и так все хорошо работает.
    Рад помочь:)
     
  7. Maxika

    Maxika Создатель

    Регистр.:
    13 окт 2015
    Сообщения:
    12
    Симпатии:
    3
    Здесь очень полезно прописать следующие строки:

    Код:
    <FilesMatch "\.(css|js|cssgz|jsgz)$">
        Header set Cache-Control "max-age=7776000, public"
        Header append Vary: Accept-Encoding
    </FilesMatch>
    
    <FilesMatch "\.(xml|txt)$">
        Header set Cache-Control "max-age=172800, public, must-revalidate"
    </FilesMatch>
    
    <FilesMatch "\.(html|htm)$">
        Header set Cache-Control "max-age=7200, must-revalidate"
    </FilesMatch>
    
    # Add "gzip Encoding" to already gzipped files
    AddType text/css .css .cssgz
    AddType text/javascript .js .jsgz
    AddEncoding x-gzip .cssgz .jsgz
    
    # Optimization for Browser Caching
    FileETag MTime Size
    <IfModule mod_expires.c>
        ExpiresActive on
        <filesmatch ".(jpg|jpeg|gif|png|ico|css|js|cssgz|jsgz)$">
            ExpiresDefault "access plus 7 days"
        </filesmatch>
        ExpiresDefault "access 7 days"
        ExpiresByType application/javascript "access plus 7 days"
        ExpiresByType text/javascript "access plus 7 days"
        ExpiresByType text/css "access plus 7 days"
        ExpiresByType text/html "access plus 7 day"
        ExpiresByType text/x-javascript "access 1 year"
        ExpiresByType image/gif "access plus 7 days"
        ExpiresByType image/jpeg "access plus 7 days"
        ExpiresByType image/png "access plus 7 days"
        ExpiresByType image/jpg "access plus 7 days"
        ExpiresByType image/x-icon "access 1 year"
        ExpiresByType application/x-shockwave-flash "access 1 year"
    </IfModule>
    
    # Enable Gzip into use mod_gzip.c
    <IfModule mod_gzip.c>
        mod_gzip_on         Yes
        mod_gzip_dechunk    Yes
        mod_gzip_item_include file      \.(html?|txt|css|js|php|pl)$
        mod_gzip_item_include handler   ^cgi-script$
        mod_gzip_item_include mime      ^text\.*
        mod_gzip_item_include mime      ^application/x-javascript.*
        mod_gzip_item_include mime      ^application/x-font-woff.*
        mod_gzip_item_exclude mime      ^image\.*
        mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
    </IfModule>
    
    <IfModule mod_deflate.c>
        AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript
    </IfModule>
     
    Последнее редактирование: 28 фев 2016
    spamhost нравится это.
  8. sol_los

    sol_los

    Регистр.:
    17 окт 2011
    Сообщения:
    384
    Симпатии:
    235
    скорее всего запросы мегафильтра неоптимизированы, потому и грузит в целом страницы с категориями.
     
  9. toropa

    toropa

    Регистр.:
    17 ноя 2009
    Сообщения:
    204
    Симпатии:
    58
    Вариант Maxika у меня дает резуьтаты хуже. У меня настроино так и по скорости получил 67/86


    Код:
    <IfModule mod_deflate.c>
      AddOutputFilterByType DEFLATE text/html
      AddOutputFilterByType DEFLATE application/javascript
      AddOutputFilterByType DEFLATE text/javascript
      AddOutputFilterByType DEFLATE text/css
      <IfModule mod_setenvif.c>
        BrowserMatch ^Mozilla/4 gzip-only-text/html
        BrowserMatch ^Mozilla/4\.0[678] no-gzip
        BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
      </IfModule>
    </IfModule>
    
    <IfModule mod_deflate.c>
    SetOutputFilter DEFLATE
    Header append Vary User-Agent
    </IfModule>
    
    <IfModule mod_expires.c>
    ExpiresActive On
    ExpiresDefault "access 7 days"
    ExpiresByType application/javascript "access plus 1 year"
    ExpiresByType text/javascript "access plus 1 year"
    ExpiresByType text/css "access plus 1 year"
    ExpiresByType text/html "access plus 7 day"
    ExpiresByType text/x-javascript "access 1 year"
    ExpiresByType image/gif "access plus 1 year"
    ExpiresByType image/jpeg "access plus 1 year"
    ExpiresByType image/png "access plus 1 year"
    ExpiresByType image/jpg "access plus 1 year"
    ExpiresByType image/x-icon "access 1 year"
    ExpiresByType application/x-shockwave-flash "access 1 year"
    </IfModule>
    
    <ifModule mod_headers.c>
    <filesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|swf)$">
    Header set Cache-Control "max-age=2592000, public"
    </filesMatch>
    <filesMatch "\.(css|js)$">
    Header set Cache-Control "max-age=2592000, public"
    </filesMatch>
    <filesMatch "\.(xml|txt)$">
    Header set Cache-Control "max-age=172800, public, must-revalidate"
    </filesMatch>
    <filesMatch "\.(html|htm|php)$">
    Header set Cache-Control "max-age=172800, private, must-revalidate"
    </filesMatch>
    </ifModule>
    
    <IfModule mod_setenvif.c>
    BrowserMatch "MSIE" force-no-vary
    BrowserMatch "Mozilla/4.[0-9]{2}" force-no-vary
    </IfModule>
     
    v.kravez и cyberkekc нравится это.
  10. toropa

    toropa

    Регистр.:
    17 ноя 2009
    Сообщения:
    204
    Симпатии:
    58
    под OcStore 2.1.0.2 ваш скрипт будет работать?
     
    v.kravez и cyberkekc нравится это.