Слайд 2
Что такое nginx и зачем он нужен,
если есть apache?
Слайд 3Статика
GIF,JPG,ICO
Динамика
PHP-скрипты
HTTP-ответ
HTTP-запрос
Слайд 4?
Статика
GIF,JPG,ICO
Динамика
PHP-скрипты
HTTP-ответ
HTTP-ответ
HTTP-запрос
HTTP-запрос
Слайд 5LIGHTTPD
NGINX
Бесплатный
да
да
Проксирование
да
да
Быстрый на статике
да
да
Недостатки
Memory Leak
???
Слайд 6NGINX
Статика
GIF,JPG,ICO
Динамика
PHP-скрипты
HTTP-ответ
HTTP-ответ
HTTP-запрос
HTTP-запрос
Слайд 7FAST-CGI
PHP-FPM
NGINX
Статика
GIF,JPG,ICO
Динамика
PHP-скрипты
HTTP-ответ
HTTP-ответ
HTTP-запрос
HTTP-запрос
Слайд 8
Применение memcached
для кэширования объектов
Слайд 9
Что умеет memcached?
Почти ничего:
- set
- get
- delete
Слайд 10
Для чего нужен memcached?
- Сложные составные объекты
- Счетчики
- Кэши выборок
Слайд 11 Как работать с memcached?
$memcache_obj = new Memcache;
$memcache_obj->connect('memcache_host', 11211);
public
function get_byid($id){
global $memcache_obj;
if( !$object = $memcached_obj->get('object_'.$id) ){
/*
* Тут многокилобайтный код сбора объекта $object
*/
$object = 'object_'.$id;
$memcached_obj->save($object, 'object_'.$id);
}
return $object;
}
Слайд 12
Где подвох?
- Данные устарвевают и теряются
- Объем памяти ограничен
- Это кэш!
- Это
не БД!
Слайд 13
Использование tpmfs
для хранения некритических данных
Слайд 14
Осталось ещё свободной памяти?
Не беда!
#mount -t tmpfs tmpfs /mnt/disk
- Директория для быстрой
отдачи файлов
- Для Nginx не требуется костылей
if (!-f $request_filename) {
rewrite ^(.*)$ /makepreview.php?$1 last;
break;
}
- Для Apache не требуется костылей
RewriteCond %{REQUEST_FILENAME} !-F
RewriteRule ^(.*)$ /makepreview.php?$1 [L]
Слайд 15Что ещё можно разместить в памяти?
- Превью картинок
# du -sh 160x120 200x150
65x65 75x57
3,6M 160x120
5,9K 200x150
844K 65x65
1,2M 75x57
- Кэш шаблонного движка
# du -sh cache
5M cache