У меня есть веб-приложение, которое будет поддерживать широкий спектр веб-сайтов. Я хочу реализовать некоторую форму мониторинга пропускной способности для каждого домена в целях выставления счетов и чрезмерного использования. Я использую 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
который включает доменное имя из заголовка хоста.
Тогда в зависимости от какой пакет веб-аналитики вы выбираете либо использовать записанный хост, чтобы разделить файл журнала на отдельные для каждого домена и генерировать на их основе статистику использования, либо, возможно, программное обеспечение уже поддерживает разделение нескольких доменов.