Исключить ведение журнала apache фрагментов карты только из error_log

Мой сервер предоставляет фрагменты карты для карты, покрывающей ограниченную область. В настоящее время каждый запрос плитки за пределами области карты создает сообщение «Файл не существует» в журнале ошибок apache. Это бесполезная информация, и она сильно загромождает error_log — поэтому поиск «настоящих» ошибок затруднен, требуется фильтрация через grep и т. д., помимо создания непомерно большого error_log. Но я ДЕЙСТВИТЕЛЬНО хочу, чтобы действительные запросы отображались в apache access_log, так как я хочу подсчитать их для определения использования.

Я не нашел никакого разумного решения, которое позволило бы мне исключить недопустимые запросы плитки из error_log, сохраняя при этом действительные запросы в access_log. Читая документы Apache и выполняя поиск в Интернете, я нашел «решения».

() используйте директиву apache «SetEnvIf», чтобы установить переменную среды, которая будет использоваться «CustomLog», но это исключит выбранные файлы из обоих журналов. «ErrorLog» не может использовать переменную окружения

() используйте «RewriteCond» и «RewriteRule», чтобы отправить 404 «не найдено» для «недействительных» запросов. Предположительно, это сработает, но потребует создания большого списка выражений «недопустимый файл» — и я предполагаю, что такой длинный список фильтров снизит производительность сервера для всех файлов. Это не кажется практичным.

(Для тех, кто не знает, плитки хранятся в пирамиде каталогов, самый верхний каталог представляет уровень масштабирования, а вложенные подкаталоги представляют координаты x/y, производя запросы аля .../TILES/10/167/403.png. Итак, Карта частичного покрытия области, такая как моя, аналогична «разреженному» массиву в том смысле, что на любом уровне есть много несуществующих подкаталогов, к которым приложение для отображения карты может попытаться получить доступ.]

Я надеюсь получить относительно простое решение. Я немного удивлен, что исключение файлов только из error_log кажется невозможным, так как я думаю, что моя ситуация не является редкостью.

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

Еще позже - нашел это, что кажется жизнеспособным решением, если поместить его в файл .htaccess в моем каталоге TILES, а не в файле конфигурации apache Я хочу, чтобы ошибки "Файл не существует" игнорировались или не регистрировались


person Jack    schedule 15.10.2015    source источник


Ответы (1)


В моем последнем добавлении я поместил следующее в файл .htaccess в свой каталог TILES, и отсутствующие файлы плитки больше не добавляются в error_log.

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^.*$ - [G,L]
person Jack    schedule 22.10.2015