Хостер и настройка apache

macrobo
На сайте с 07.04.2011
Offline
99
716

Надеюсь, я не ошибся веткой форума :)

Есть сайт на wordpress с низкой посещаемостью; главная страница вместе с графикой не более 300 кб, хтмл сжат, графика оптимизирована. Виртуальный хостинг

По тестам всё это дело грузилось не более 4с., при повторном обращении – 2с.

У хостера отключен «Keep-alive» и нет поддержки mod_expires.

Недавно потребовалось ставить на определенные графические файлы водяные знаки. Задача решается php скриптом и директивами для apache. Пример .htaccess

<FilesMatch "^.*[0-9]*\.(jpg|jpeg|JPG)$">

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} -f

RewriteRule ^.*/[0-9]*\.(jpg|jpeg|JPG)$ /watermark.php [T=application/x-httpd-php,L,QSA]

</FilesMatch>

Однако, на локальном сервере все работает, а у хостера нет. Для проверки, на сервере в папку с графикой был помещен .htaccess с директивами Order allow,deny Deny from all, соответственно к самой папке был полностью закрыт доступ, но при прямом обращении к любому графическому файлу jpg (или png etc), последний спокойно отображался. Т.е. директивы запрета полностью игнорируются.

По завершению небольшой переписки с тех.поддержкой, все заработало, на фотографиях появился водяной знак. Но после этого скорость загрузки сайта упала ровно в два раза (инициализация соединения для каждого элемента на сайте значительно увеличилась).

Теперь вопрос. Есть ли это результат плохо настроенного сервера и экономии ресурсов за счет ограничения пользователей или использование mod_rewrite для файлов jpg действительно в два раза увеличивает нагрузку на сервер и использование данной возможности apache не рекомендуется?

Спасибо за помощь.

unixadm
На сайте с 24.09.2010
Offline
110
#1

Вообще генерировать водяную блямбу прямо на лету - не самая лучшая идея, т.к. картинку запрашивают много раз и каждый раз вместо того, чтобы просто ее отдать, серверу приходится запускать php-скрипт, тратя на это ресурсы. В случае, если таких картинок достаточно много и посетителей хватает, нагрузка станет совсем серьезной и все начнет ощутимо тормозить. Более того, в случае с htaccess сервер пытается применить эти правила для каждого запрошенного файла, что автоматически увеличивает время реакции и опять же, нагрузку.

Попробуйте проставить на картинки водяной знак один раз и потом отдавать уже сами изображения без участия PHP и реврайтов. И настроить выставление знака при загрузке картинки.

Host4Biz: NVMe Хостинг в Европе ( https://host4.biz/ru/hosting/shared-hosting ) | Windows/Linux NVMe VPS в Европе ( https://host4.biz/ru/vps ) | Выделенные серверы в Европе, США и Азии ( https://host4.biz/ru/servers/dedicated )
macrobo
На сайте с 07.04.2011
Offline
99
#2

.htaccess лежит только в одной папке с картинками, на которые и надо ставить водяной знак. Данные файлы запрашиваются не часто и только по желанию пользователя (+ кешируются).

Но суть дела сейчас не в водяных знаках на картинках, а в том, что изначально apache игнорировал любые директивы, относящиеся к файлам с расширением jpg,gif,png. После обращение в тех.поддержку, apache стал реагировать на данные файлы, но сразу упала скорость отдачи контента... до этого скорость загрузки 250кб - 3с, сейчас 8-9с.

Водяные знаки - пример задачи, которую надо было решить.

unixadm
На сайте с 24.09.2010
Offline
110
#3

А статика отдается с той же скоростью? Если да - то похоже на какой-то шейпер либо общую занятость канала у хостера.

macrobo
На сайте с 07.04.2011
Offline
99
#4

Время инициализации увеличилась для всех данных

Вот что было:

время загрузки графических файлов

Текущее положение

время загрузки тех же самых графических файлов

css, js, - абсолютно все файлы теперь отдаются в два раза медленнее.

Даже инициализации соединения и загрузка самого хтмл документа теперь длится 3с, в то время как было не больше 1.5с

Данная трудность возникла только после "настройки apache на работу со всеми файлами" и не вызвана загрузкой канала, т.к. это происходит уже второй раз. Изначально, когда не требовалось накладывать водяные знаки, и не было известно об игнорировании apach'ем файлов jpg, всё работало без нареканий. Но как только был исправлен данный "баг", всё, сайт грузится 9с... Первый раз я не стал придавать этому особое значение, хотя пользователи часто жаловались на низкую скорость отдачи контента.

Недавно, сервер опять перестал обрабатывать графику (пропали водяные знаки), и скорость загрузки сайта сразу приняла обычную величину. Снова была направлена просьба в тех.поддержку, и как только исправили это, скорость снова упала.

Вот я и стараюсь понять, почему apache игнорировал jpg, а как только стал учитывать эти файлы, работать стало невозможно.

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