- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Есть идея использовать PHP для создания файлов кеша для nginx.
nginx проверяет наличие такого файла, если файл есть - отдает как статику. Усли файла нет - проксит запрос апачу, на котором php при запросе создаст такой файл и следующий запрос будет уже как статика.
Что это даст - контроль валидности кеша стредствами пхп.
Что скажете о таком способе?
Вполне можно реализовать.
Только какой смысл использовать php ? Если только там ни какая-то замудрённая логика создания самого файла кэша.
Контролировать кэш всё-равно толком не получится, т.к. nginx молча отдаст файл, если он будет присутствовать на диске.
Вы бы рассказали более подробно, чего хотите добиться. Возможно, что можно всё сделать гораздо проще и не нагрузно.
Спасибо за ответы.
memcached можно использовать, но он требователен к памяти и несохраняет кеш при рестарте. есть что-то похожее умеющее использовать дисковый кеш?
Специальной какой-то задачи пока нет, пока в общеобразовательном плане интересуюсь.
Было предложено ранее.
в nginx кэширование под максимальное время и управляйте из пхп кэшем. через nginx_ngx_cache_purge.
nginx_ngx_cache_purge
А оно умеет чистить кеш по маске? Или только постранично? Не могу найти нормальных доков.
netwind, Такой кеш делается мемкешем, а не загонянием в статику. Или при обновлении страницы скрипт пинает веб-сервер, чтобы сказать ему, что кещ устарел. А не создавать кеш пыхом. Это бред.
а генерирует же html страницу все таки php, например, от шаблонизатора $templete->out; это вся страница отдаваемая, ее можно записать в кэш nginx (в файл), чтобы страница отдавалась как статика...
Или при обновлении страницы скрипт пинает веб-сервер, чтобы сказать ему, что кещ устарел
что устарела страница или устарел весь кэш?
(что-то не видел, что можно отправить запрос и указать что конкретная страница устарела)
что-то не видел, что можно отправить запрос и указать что конкретная страница устарела
Как раз это и можно:
#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) или часть его?
izbushka, ну по маске - вроде проще всего выполнить в пыхе unlink ();
izbushka, ну по маске - вроде проще всего выполнить в пыхе unlink ();
Тогда пыхе надо давать доступ за пределы doc_root, или хранить кеш внутри.. Както не очень красиво..
А еще в php, как и во многих других языках со скопированной у Cи файловой библиотекой, unlink не удаляет по маске.
Как раз это и можно:
А вот можно ли стереть весь кеш (можно конечно тупо папку с кешем, но интересует именно ngx_cache_purge) или часть его?
а если страница одна http://myproject/mypage.php?lang=ru, но например, для разных пользователей (в зависимости от доступа и т.д.) на этой странице разная информация?
тогда только так http://myproject/mypage.php?lang=ru&use_id=10