16
Ускорение проекта на PHP на примере

Ускорение проекта на PHP на примере

Embed Size (px)

DESCRIPTION

Ускорение проекта на PHP на примере. Что такое nginx и зачем он нужен, если есть apache?. HTTP-запрос. HTTP-ответ. Статика GIF,JPG,ICO. Динамика PHP-скрипты. HTTP-запрос. HTTP-запрос. ?. HTTP-ответ. HTTP-ответ. Статика GIF,JPG,ICO. Динамика PHP-скрипты. LIGHTTPD. NGINX. - PowerPoint PPT Presentation

Citation preview

Page 1: Ускорение проекта на PHP на примере

Ускорение проекта на PHPна примере

Page 2: Ускорение проекта на PHP на примере

Что такое nginx и зачем он нужен,если есть apache?

Page 3: Ускорение проекта на PHP на примере

СтатикаGIF,JPG,ICO

ДинамикаPHP-скрипты

HTTP-ответ

HTTP-запрос

Page 4: Ускорение проекта на PHP на примере

?

СтатикаGIF,JPG,ICO

ДинамикаPHP-скрипты

HTTP-ответ HTTP-ответ

HTTP-запрос HTTP-запрос

Page 5: Ускорение проекта на PHP на примере

LIGHTTPD NGINX

Бесплатный да да

Проксирование да да

Быстрый на статике да да

Недостатки Memory Leak ???

Page 6: Ускорение проекта на PHP на примере

NGINX

СтатикаGIF,JPG,ICO

ДинамикаPHP-скрипты

HTTP-ответ HTTP-ответ

HTTP-запрос HTTP-запрос

Page 7: Ускорение проекта на PHP на примере

FAST-CGIPHP-FPM

NGINX

СтатикаGIF,JPG,ICO

ДинамикаPHP-скрипты

HTTP-ответ HTTP-ответ

HTTP-запрос HTTP-запрос

Page 8: Ускорение проекта на PHP на примере

Применение memcachedдля кэширования объектов

Page 9: Ускорение проекта на PHP на примере

Что умеет memcached?

Почти ничего: - set

- get- delete

Page 10: Ускорение проекта на PHP на примере

Для чего нужен memcached?

- Сложные составные объекты- Счетчики- Кэши выборок

Page 11: Ускорение проекта на PHP на примере

Как работать с 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; }

Page 12: Ускорение проекта на PHP на примере

Где подвох?

- Данные устарвевают и теряются- Объем памяти ограничен- Это кэш!- Это не БД!

Page 13: Ускорение проекта на PHP на примере

Использование tpmfsдля хранения некритических данных

Page 14: Ускорение проекта на PHP на примере

Осталось ещё свободной памяти?Не беда!

#mount -t tmpfs tmpfs /mnt/disk- Директория для быстрой отдачи файлов- Для Nginx не требуется костылейif (!-f $request_filename) {

rewrite ^(.*)$ /makepreview.php?$1 last;break;

}- Для Apache не требуется костылейRewriteCond %{REQUEST_FILENAME} !-FRewriteRule ^(.*)$ /makepreview.php?$1 [L]

Page 15: Ускорение проекта на PHP на примере

Что ещё можно разместить в памяти?

- Превью картинок# du -sh 160x120 200x150 65x65 75x573,6M 160x1205,9K 200x150844K 65x651,2M 75x57

- Кэш шаблонного движка# du -sh cache5M cache

Page 16: Ускорение проекта на PHP на примере

Андрей Суббота[email protected]