cancel
Showing results for 
Search instead for 
Did you mean: 

Кэширование в браузере для Apache + Nginx + PHP для Magento

Кэширование в браузере для Apache + Nginx + PHP для Magento

Привет!

 

Есть виртуальный хостинг (да я вкурсе, что в идеале должен быть выделенный сервер), на котором стоит сервер с операционной системой FreeBSD 8.3 32 bit, принадлежащая к семейству Unix-систем.

 

На хостинге доступно следующее программное обеспечение:

  • Веб-сервер Apache 2.4;
  • Акселератор отдачи статических данных на базе веб-сервера nginx;
  • PHP 5.1 — 5.6, 7.0 (переключение между версиями доступно в панели управления хостингом);
  • Perl 5.20;
  • MySQL 5.6 (без поддержки представлений, триггеров, хранимых процедур); 
  • Используется панель управления собственной разработки.

Вопрос: какой код нужно вставить в конфигурационный файл на сервере, чтобы включить кэширование в браузере?

 

На одном сайте кэширование работает, а на Magento нет, хотя оба сайта на одном хостинге. И там и там я указывал одинаковый код для включения кэширования.

 

Спасибо!

Tags (2)
5 REPLIES

Re: Кэширование в Apache + Nginx + PHP для Magento

>>да я вкурсе, что в идеале должен быть выделенный сервер

Два сайта из трех которыми я занимаюсь расположены на хостинге и при чем не самом дорогом за 120 рублей в месяц. Вопреки рекомендациям большинство сайтов находятся как раз на обычных виртуальных хостингах даже не на VSD или VPS как их там точно называют.

>>Вопрос: какой код нужно вставить в конфигурационный файл, чтобы включить кэширование?

Из вопроса не совсем ясно какой кэш Вы желаете включить, кэш браузера, memcached, redis...

Предположу что кэш браузера...

Кэширование браузером в Apache можно сделать несколькими способами с помощью модулей headers или(и) expires

и в зависимости от того какие модули установлены в Apache стоит делать настройку.

Вот такие настройки в файле .htaccess работают у меня, используется и headers и expires может так и не совсем правильно, но работает без нареканий.

# Включаем кэш в браузерах посетителей   
<IfModule mod_expires.c>

############################################
## Add default Expires header
## http://developer.yahoo.com/performance/rules.html#expires

# Задаем значение по умолчанию (для всех файлов)
    ExpiresDefault "access plus 1 year"

</IfModule>

<ifModule mod_headers.c>
    # Все html и htm файлы будут храниться в кэше браузера один день
    <FilesMatch "\.(html|htm)$">
        Header set Cache-Control "max-age=43200"
    </FilesMatch>
    # Все css, javascript и текстовые файлы будут храниться в кэше браузера одну неделю
    <FilesMatch "\.(js|css|txt)$">
        Header set Cache-Control "max-age=604800"
    </FilesMatch>
    # Все флэш файлы и изображения будут храниться в кэше браузера один месяц
    <FilesMatch "\.(flv|swf|ico|gif|jpg|jpeg|png)$">
        Header set Cache-Control "max-age=2592000"
    </FilesMatch>
    # Отключаем кеширование php и других служебных файлов
    <FilesMatch "\.(pl|php|cgi|spl|scgi|fcgi)$">
        Header unset Cache-Control
    </FilesMatch>
</IfModule>

Так же включить кеширование браузером можно с помощью Nginx, но так как сам этого не делал примеры приводить не буду.

 

Re: Кэширование в Apache + Nginx + PHP для Magento

Какими сервисами Вы проверяете на сервере кэширование в браузере?

Re: Кэширование в Apache + Nginx + PHP для Magento

>>Какими сервисами Вы проверяете на сервере кэширование в браузере?

Кэширование браузером стоит проверять не на сервере, а в браузере.

 

Стандартной консолью в браузере нажав F12 и выбрав вкладку сеть(network) можно отследить работу кэша.

Включайте, отключайте, смотрите, анализируйте

В фаерфоксе

 

 

В хроме

 

Так-же гугл пэйджспид ругается если кэш не включен

 

Re: Кэширование в Apache + Nginx + PHP для Magento

В настоящий момент включить кэширование на веб-сервере Apache в файле .htaccess не предоставляется возможным. Только с помощью ручного файла конфигурации nginx  (предварительно переведя сайт в ручной режим настройки).

Re: Кэширование в Apache + Nginx + PHP для Magento

Я кэширование в браузере включаю в конфигурационном файле в папке etc/nginx/site.conf в веб-сервере Nginx:

# Статические расположения файлов
    location ~* ^.+\.(jpg|jpeg|gif|swf|png|ico|mp3|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|dat|avi|ppt|txt|tar|mid|midi|wav|bmp|rtf|wmv|mpeg|mpg|mp4|m4a|spx|ogx|ogv|oga|webm|weba|ogg|tbz|js|7z)$ {
        root   /home/xxx/xxx.com/docs;
        access_log  /var/log/xxx.com.access_log  combined;
        error_page 404 = @fallback;
        log_not_found off;
        accel_htaccess_switch on;
        #Кешируем картинки на 4 месяца
expires 4M; #Кешируем только на клиентах add_header Cache-Control private; }