nginx + apache. Кеширование php

123
Himiko
На сайте с 28.08.2008
Offline
560
#11
izbushka:
Есть идея использовать PHP для создания файлов кеша для nginx.

nginx проверяет наличие такого файла, если файл есть - отдает как статику. Усли файла нет - проксит запрос апачу, на котором php при запросе создаст такой файл и следующий запрос будет уже как статика.

Что это даст - контроль валидности кеша стредствами пхп.

Что скажете о таком способе?

Вполне можно реализовать.

Только какой смысл использовать php ? Если только там ни какая-то замудрённая логика создания самого файла кэша.

Контролировать кэш всё-равно толком не получится, т.к. nginx молча отдаст файл, если он будет присутствовать на диске.

Вы бы рассказали более подробно, чего хотите добиться. Возможно, что можно всё сделать гораздо проще и не нагрузно.

Профессиональное администрирование серверов (https://systemintegra.ru). Круглосуточно. Отзывы (/ru/forum/834230) Лицензии (http://clck.ru/Qhf5) ISPManager,VDSManager,Billmanager e.t.c. по низким ценам.
izbushka
На сайте с 08.06.2007
Offline
110
#12

Спасибо за ответы.

memcached можно использовать, но он требователен к памяти и несохраняет кеш при рестарте. есть что-то похожее умеющее использовать дисковый кеш?

Специальной какой-то задачи пока нет, пока в общеобразовательном плане интересуюсь.

Raistlin
На сайте с 01.02.2010
Offline
247
#13

Было предложено ранее.

RAS:
в nginx кэширование под максимальное время и управляйте из пхп кэшем. через nginx_ngx_cache_purge.
HostAce - Асы в своем деле (http://hostace.ru)
izbushka
На сайте с 08.06.2007
Offline
110
#14
Raistlin:
nginx_ngx_cache_purge

А оно умеет чистить кеш по маске? Или только постранично? Не могу найти нормальных доков.

rtyug
На сайте с 13.05.2009
Offline
263
#15
Raistlin:
netwind, Такой кеш делается мемкешем, а не загонянием в статику. Или при обновлении страницы скрипт пинает веб-сервер, чтобы сказать ему, что кещ устарел. А не создавать кеш пыхом. Это бред.

а генерирует же html страницу все таки php, например, от шаблонизатора $templete->out; это вся страница отдаваемая, ее можно записать в кэш nginx (в файл), чтобы страница отдавалась как статика...

Raistlin:
Или при обновлении страницы скрипт пинает веб-сервер, чтобы сказать ему, что кещ устарел

что устарела страница или устарел весь кэш?

(что-то не видел, что можно отправить запрос и указать что конкретная страница устарела)

Спалил тему: Pokerstars вывод WMZ, etc на VISA 0% или SWIFT + Конверт USD/GBP,etc (net profit $0,5 млрд) (https://minfin.com.ua/blogs/94589307/115366/) Monobank - 50₴ на счет при рег. тут (https://clck.ru/DLX4r) | Номер SIP АТС Москва 7(495) - 0Ꝑ, 8(800) - 800Ꝑ/0Ꝑ (http://goo.gl/XOrCSn)
izbushka
На сайте с 08.06.2007
Offline
110
#16
rtyug:
что-то не видел, что можно отправить запрос и указать что конкретная страница устарела

Как раз это и можно:

location ~ ^/purge(/.*) {
#allow 127.0.0.1;
#allow 10.1.1.0/24;
#deny all;
fastcgi_cache_purge mycache $1$is_args$args;
}

Для того чтоб удалить закешированную страницу: http://myproject/mypage.php?lang=ru, мне достаточно загрузить страницу http://myproject/purge/mypage.php?lang=ru

А вот можно ли стереть весь кеш (можно конечно тупо папку с кешем, но интересует именно ngx_cache_purge) или часть его?

Raistlin
На сайте с 01.02.2010
Offline
247
#17

izbushka, ну по маске - вроде проще всего выполнить в пыхе unlink ();

izbushka
На сайте с 08.06.2007
Offline
110
#18
Raistlin:
izbushka, ну по маске - вроде проще всего выполнить в пыхе unlink ();

Тогда пыхе надо давать доступ за пределы doc_root, или хранить кеш внутри.. Както не очень красиво..

N
На сайте с 06.05.2007
Offline
419
#19

А еще в php, как и во многих других языках со скопированной у Cи файловой библиотекой, unlink не удаляет по маске.

Кнопка вызова админа ()
rtyug
На сайте с 13.05.2009
Offline
263
#20
izbushka:
Как раз это и можно:


А вот можно ли стереть весь кеш (можно конечно тупо папку с кешем, но интересует именно ngx_cache_purge) или часть его?

а если страница одна http://myproject/mypage.php?lang=ru, но например, для разных пользователей (в зависимости от доступа и т.д.) на этой странице разная информация?

тогда только так http://myproject/mypage.php?lang=ru&use_id=10

123

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий