2015-10-15 1 views
1

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

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

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

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

(Для тех, кто не знает, плитки хранится в пирамиде каталогов, верхний каталог, представляющий уровень масштабирования и вложенные подкаталоги , представляющий X/Y позиции, производя запросы ала .../ПЛИТЫ/10/167 /403.png. Таким образом, карта покрытия частичного покрытия, такая как шахта , аналогична «разреженному» массиву в том, что существует множество несуществующих подкаталогов на любом уровне, к которым может попытаться обратиться приложение отображения карты.]

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

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

Даже позже - нашел это, что кажется жизнеспособным решением, если поместить в файл .htaccess в моем каталоге ПЛИТКА, а не в конфигурационном файле Apache I want "File does not exist" errors to be ignored or not logged

ответ

0

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

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