У меня есть веб-приложение, которое будет поддерживать широкий спектр веб-сайтов. Я хочу реализовать некоторую форму мониторинга пропускной способности для каждого домена в целях выставления счетов и чрезмерного использования. Я использую Apache в качестве веб-сервера и просто использую vhost по умолчанию для всех сайтов (с маршрутизацией и управлением на уровне сайта, которые обрабатываются в приложении, а не на сервере). Есть ли способ, и если да, то как мне извлечь данные об использовании полосы пропускания для каждого доменного имени в Apache, а не для каждого виртуального хоста.
Чтобы пояснить, с помощью мониторинга на основе домена я говорю о HOST
поле заголовка запроса.
В качестве примера представьте, что у меня есть 4 названия сайтов www.example.com
, www.example.org
, www.site1. com
и site2.example.com
. Теперь все четыре этих сайта будут обрабатываться одним и тем же кодом PHP и одним и тем же файлом vHost (по умолчанию для всех файлов в Apache), будут работать под одним и тем же пользователем сервера и т. Д. Однако сайты являются отдельными сайтами и различаются по сервер, получив заголовок запроса хоста в приложении. Мне нужно отслеживать полосу пропускания, используемую каждым из этих 4 сайтов отдельно, поскольку каждый из них будет иметь разную разрешенную полосу пропускания.
Меня не беспокоит, могут ли это изменить пользователи на сервере, поскольку пользователи вообще не будут иметь доступа к серверам и будут полностью управлять своими сайтами через веб-панель (подумайте о чем-то вроде Weebly, где одно приложение обеспечивает балансировку нагрузки всех сайтов на нескольких серверах). Таким образом, метод будет использоваться на нескольких серверах и введен в единую базу данных. Я бы предпочел какой-то метод, который работает с системой демонов на самом сервере, с которым мой код может взаимодействовать или который создает анализируемый файл, с которым я могу работать, вместо того, чтобы кодировать систему для выполнения команд терминала и обработки результатов.
В качестве примера я хочу добиться чего-то похожего на то, как Wix определяет полосу пропускания, используемую различными сайтами, размещенными в их системе, поскольку фактически это служба приложений, а не служба общего хостинга.
Достаточно распространенный подход - генерировать статистику использования из журналов доступа.
Создайте CustomLog
в LogFormat
, который включает имя домена из заголовка хоста.
Затем, в зависимости от , какой пакет веб-аналитики вы выбираете, либо использовать записанный Хост, чтобы разделить файл журнала на отдельные для каждого домена и генерировать статистику использования из них, либо, возможно, программное обеспечение уже поддерживает разделение несколько доменов.