Слайд 2
Что такое nginx и зачем он нужен,
если есть apache?
![Что такое nginx и зачем он нужен, если есть apache?](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/448825/slide-1.jpg)
Слайд 3Статика
GIF,JPG,ICO
Динамика
PHP-скрипты
HTTP-ответ
HTTP-запрос
![Статика GIF,JPG,ICO Динамика PHP-скрипты HTTP-ответ HTTP-запрос](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/448825/slide-2.jpg)
Слайд 4?
Статика
GIF,JPG,ICO
Динамика
PHP-скрипты
HTTP-ответ
HTTP-ответ
HTTP-запрос
HTTP-запрос
![? Статика GIF,JPG,ICO Динамика PHP-скрипты HTTP-ответ HTTP-ответ HTTP-запрос HTTP-запрос](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/448825/slide-3.jpg)
Слайд 5LIGHTTPD
NGINX
Бесплатный
да
да
Проксирование
да
да
Быстрый на статике
да
да
Недостатки
Memory Leak
???
![LIGHTTPD NGINX Бесплатный да да Проксирование да да Быстрый на статике да](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/448825/slide-4.jpg)
Слайд 6NGINX
Статика
GIF,JPG,ICO
Динамика
PHP-скрипты
HTTP-ответ
HTTP-ответ
HTTP-запрос
HTTP-запрос
![NGINX Статика GIF,JPG,ICO Динамика PHP-скрипты HTTP-ответ HTTP-ответ HTTP-запрос HTTP-запрос](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/448825/slide-5.jpg)
Слайд 7FAST-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-запрос](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/448825/slide-6.jpg)
Слайд 8
Применение memcached
для кэширования объектов
![Применение memcached для кэширования объектов](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/448825/slide-7.jpg)
Слайд 9
Что умеет memcached?
Почти ничего:
- set
- get
- delete
![Что умеет memcached? Почти ничего: - set - get - delete](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/448825/slide-8.jpg)
Слайд 10
Для чего нужен memcached?
- Сложные составные объекты
- Счетчики
- Кэши выборок
![Для чего нужен memcached? - Сложные составные объекты - Счетчики - Кэши выборок](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/448825/slide-9.jpg)
Слайд 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](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/448825/slide-10.jpg)
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
Где подвох?
- Данные устарвевают и теряются
- Объем памяти ограничен
- Это кэш!
- Это
![Где подвох? - Данные устарвевают и теряются - Объем памяти ограничен -](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/448825/slide-11.jpg)
не БД!
Слайд 13
Использование tpmfs
для хранения некритических данных
![Использование tpmfs для хранения некритических данных](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/448825/slide-12.jpg)
Слайд 14
Осталось ещё свободной памяти?
Не беда!
#mount -t tmpfs tmpfs /mnt/disk
- Директория для быстрой
![Осталось ещё свободной памяти? Не беда! #mount -t tmpfs tmpfs /mnt/disk -](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/448825/slide-13.jpg)
отдачи файлов
- Для 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](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/448825/slide-14.jpg)
65x65 75x57
3,6M 160x120
5,9K 200x150
844K 65x65
1,2M 75x57
- Кэш шаблонного движка
# du -sh cache
5M cache