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

Содержание

Слайд 2

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

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

Слайд 3

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

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

HTTP-ответ

HTTP-запрос

Статика GIF,JPG,ICO Динамика PHP-скрипты HTTP-ответ HTTP-запрос

Слайд 4

?

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

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

HTTP-ответ

HTTP-ответ

HTTP-запрос

HTTP-запрос

? Статика GIF,JPG,ICO Динамика PHP-скрипты HTTP-ответ HTTP-ответ HTTP-запрос HTTP-запрос

Слайд 5

LIGHTTPD

NGINX

Бесплатный

да

да

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

да

да

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

да

да

Недостатки

Memory Leak

???

LIGHTTPD NGINX Бесплатный да да Проксирование да да Быстрый на статике да

Слайд 6

NGINX

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

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

HTTP-ответ

HTTP-ответ

HTTP-запрос

HTTP-запрос

NGINX Статика GIF,JPG,ICO Динамика PHP-скрипты HTTP-ответ HTTP-ответ HTTP-запрос HTTP-запрос

Слайд 7

FAST-CGI PHP-FPM

NGINX

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

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

HTTP-ответ

HTTP-ответ

HTTP-запрос

HTTP-запрос

FAST-CGI PHP-FPM NGINX Статика GIF,JPG,ICO Динамика PHP-скрипты HTTP-ответ HTTP-ответ HTTP-запрос HTTP-запрос

Слайд 8

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

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

Слайд 9

Что умеет memcached?
Почти ничего: - set
- get
- delete

Что умеет memcached? Почти ничего: - set - get - delete

Слайд 10

Для чего нужен memcached?
- Сложные составные объекты
- Счетчики
- Кэши выборок

Для чего нужен memcached? - Сложные составные объекты - Счетчики - Кэши выборок

Слайд 11

Как работать с memcached?
$memcache_obj = new Memcache; $memcache_obj->connect('memcache_host', 11211);
public

Как работать с memcached? $memcache_obj = new Memcache; $memcache_obj->connect('memcache_host', 11211); public function
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
для хранения некритических данных

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

Слайд 14

Осталось ещё свободной памяти? Не беда!
#mount -t tmpfs tmpfs /mnt/disk
- Директория для быстрой

Осталось ещё свободной памяти? Не беда! #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

Что ещё можно разместить в памяти? - Превью картинок # du -sh
65x65 75x57
3,6M 160x120
5,9K 200x150
844K 65x65
1,2M 75x57
- Кэш шаблонного движка # du -sh cache
5M cache
Имя файла: Ускорение-проекта-на-PHP-на-примере.pptx
Количество просмотров: 124
Количество скачиваний: 0