юбой шаблонизатор, по сути его задача отделить серверное программирование от верстки. Вы можете выбрать на свой вкус любой шаблонизатор, но мне нравится Smarty, он прост, легко конфигурируется, умеет кешировать (да, это важно, ведь кешировать будем в RAM-памяти!). Беда с ним только в том, что на нем не работают готовые движки - WP, Joomla и тп, но там (говорят) есть своя система кеширования, если так - тогда надо настроить так, чтобы кеш кидался в RAM.
если же сайт на самописном движке - учимся работать со Smarty, читаем мануалы и приводим конфиг к такому виду:
Что здесь? здесь указан параметр compile_dir - туда будут кидаться "собранные шаблоны", надо таким же сделать параметр cache_dir, чтобы кеш так же был в ОЗУ.
Контент
Да, не сомненно он будет кешироваться, но в идеале, его тоже необходимо оптимизировать. Понятное, дело, что картинки необходимо уменьшать, но разговор не о них, а о "чужом контенте" - разные баннеры, инфомеры, реклама. выводим это в отдельные html-файлы и подключаем эти файлы с помощью JQuery функцией load - в нужное место на странице - например $("#banner").load('/content/banner.html');
Таким образом можем подключить весь контент, который нам не сильно то и нужен, в результате - сперва загружаются основные элементы сайта - навигация, странички, а потом уже добавляются баннеры. Так же это плюс с точки зрения СЕО-оптимизации.
Nginx
server{
listen 80;
server_name www.yurecnt.ru yurecnt.ru;
location / {
proxy_pass http://backend;
include /etc/nginx/proxy_params;
proxy_send_timeout 600; # время ожидания при передаче запроса
proxy_read_timeout 600; # время ожидания при чтении ответа
proxy_cache static_cache;
proxy_cache_valid 5d;
proxy_cache_key "$request_method|$http_if_modified_since|$http_if_none_match|$host|$request_uri";
}
location ~* \.(jpg|jpeg|gif|png|ico|css|bmp|swf|js|txt|rar|zip|7z)$ {
root /home/yurec/www/yurecnt.ru/;
access_log off; # не пишем логи
expires 3d; # кешируем у клиента на 3 дня
}
}
Да, да, кешируем всю статику, опять же в RAM! Плюс сжимаем в gzip:
gzip on;
gzip_disable "msie6";
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
Заголовки
Чтобы Nginx нормально кешировал - добавьте в скрипт PHP (до моментов вывода на страницу) код:
header("Cache-Control: public");
header("Expires: " . date("r", time() + 86400));
где указываем, сколько кешировать. После чего сжатые в Gzip странице будут тихо-мирно лежать в кеше Nginx.
Мелочи
Сжимаем CSS и JS файлы! Чтобы они мигом проскакивали через сетевую карту - убираем из них все что можно убрать - комменты, переносы, пробелы. Можно это делать с помощью PHP-скрипта, либо с помощью онлайн-сервиса
Рейтинг: 18
Обновлено: 09.10.2024