Timthumb.php, превышение лимита нагрузки и WP Super Cache
В общем, и меня коснулось. Хостер Multihost.ru некоторое время назад что-то там включил, и началось: 2-3 раза в день на экране стала возникать надпись:
Данный интернет сайт заблокирован на 15 минут
Причина блокировки:
Превышение установленного договором лимита нагрузки
Ничего причём не менялось: ну, WP обновился. Трафик если и увеличился, так не существенно. Самое смешное, конечно, смысл надписи: в момент покупки хостинга упоминания договора нету, кто желает, может попробовать пройти регистрацию и проверить — вдруг я не увидел.
Но какбе что теперь рассуждать, нужно искать проблему и её решение.
Поиск проблемы всегда увлекательное занятие, особенно когда логов нет, а есть безумно информативное «Причина блокировки: Превышение установленного договором лимита нагрузки». Письма. «В первых строках… Во вторых…». После переписок появился лог, в котором выплыл скрипт timthumb.php, который автоматом нарезает картинки нужного размера для постов. Резать-то он режет, только эту процедуру проделывает при каждом открытии страницы, каждый посетитель, т. е. получает свою личную картинку. Ладно. Начал рыть: как бы это дело закешировать.
И был неприятно удивлён: никак. Тут-то и сел старик. Потому что убирать означало или оставить посты вообще без картинок, или полную перестановку их вручную через кастом филд. Ну, что… 60 картинок заменить полчаса. Сел и убрал…
…в том бложеке, где 60 постов всего и было. А с остальными что делать, и не знаю. В общем, ищу замену Timthumb.php или способ, которым можно заставить его один раз нарезать картинки (желательно автоматом всё же), и больше уже ни-ни! Если кто знает и решил — отзовитесь!
В процессе борьбы за кеширование установил WP Super Cache. Пока всё нравится: отдаёт посты статикой, заметно быстрее получается. Да, кому интересно: Super Cache на Мультихосте прекрасно работает.
Тут вообще всё работает, если быть откровенным. Только вот эта байда с нагрузкой не нравится мне, а так всё просто как три рубля.
А всех делов-то: надо было не выпендриваться, а делать превьюшки как у людей. Вот пример: Креативный блог ульяновского чувака. Взглянешь на название тамбика, и сразу всё понятно: animation-150×150.jpg, Вордпрессом нарезанный при загрузке картинки.
Да, чуваку из Ульяновска превед. Я как раз в тех местах служил, в Димитровграде. В Музей Ленина ездил. Там хорошо, в Ульяновске. Зимой трындец морозы, летом от жары подпрыгиваешь. Зато там на снегу научаешься спать быстро. Расскажу как-нибудь при случае.
Привет! Не нашолся способ однократного нарезания миниатюр?
Долблюсь над этой проблемой(((
Нашёлся, а как же: хостера поменял.
Тот метод, что на офсайте, не очень хороший: там картинка отдаётся из кеша через правку htacsess. Я пробовал, на Multihost.ru всё равно слетает регулярно. На Русониксе пока такой проблемы нет с перегрузкой нет, ищу решение, но что-то не очень находится.
Вижу: влёт грузятся. Теперь вопрос: а как этого добиться?
Потратив час на гугл понял что в нете решение нигде не опуюликовано. Взял с полки запылившуюся книгу «PHP 5» открыл перед собой исходник скрипта и то уродство что из него сделали, и потратил все выходные.
Результат достигнут:
— миниатюры создаются только 1 раз (если ее еще нет);
— работает кеширование на стороне клиента;
— как и в старом скрипте миниатюры создаются в JPEG формате (в исходнике по умолчанию PNG что очень увеличивает вес миниатюр)
По скрипту что идет с шаблоном:
— миниатюры создаются каждый раз новые для каждого пользователя (не подходт для многих тем)
— в кеше ограничение на количество файлов после достижения которого удаляются более старые (не подходт для многих тем)
— неправильно работает кеш на клиентской стороне
кстати много постов нашел в нете где пишут что в шаблонах не правильно работает этот скрип, что миниатюры создаются каждый раз и многих это приводит к тому что хостинг блокирует сайт изза повышенной нагрузки со стороны сайта на ЦП сервера.
Все дело в том что исходник данного скрипта очень многофункционален, он работает правильно просто его нужно редактировать под определенные цели, но без знаний PHP тут не обойтись.
Мой сайт, на которм скрипт работает уже правильно, посещаемость пока около 500, полет нормальный kinozoom.com.ua
Понятно.
Я смотрел скрипт — да, там эта сессионность видна. Наверное, если повозиться, довольно просто всё. Но я ещё проще сделал, как Ульяновский: поставил нужный размер в Миниатюры, а дальше через «Добавить новое поле» просто подсовываю уже готовый тамбик в страницу. Заменить пару строк в месте вывода, и готово дело.
менять файл timthumb.php
но тот что сделал я, пока решил не выкладывать в инет изза коммерческих соображений.
Скрипт удобен, чтобы совсем всё на автомате делать, тут не поспоришь. Но я вот уже привык, что к каждому посту просто дополнительное поле надо указывать, и ничего. Для небольшого количества постов выгоднее получается так делать.
этот вариант может еще лучше
действительно и как мне не пришло в голову, зачем вообще нужет этот timthumb тогда, ведь по сути решение уже есть в самом движке WP, странные люди — извращают шаблоны лишними скриптами..
OZ а если к примеру мне нужно 3 размера одной картинки, средствами WP не выйдет, надо придумывать что то с заменой тумба.
Почему это? Основная (больший размер), средняя и тумб. Как раз 3 и есть.
поставьте перед запуском скрипта или в нем проверку на существование нарезанной превьюшки,если её нет то режим если есть то нет.
еще можно добавить просмотр кто смотрит данную страницу и если то модераторы то нарезаем