Прокси сервер с учётом исходящего трафика
--------
Задача:
--------
Разработать прокси сервер с учётом исходящего трафика
--------
Режим работы прокси сервера:
--------
Прокси серверу передаётся адрес proxy-server.ua/xxxxxx/path,
где
xxxxxx - уникальный цифровой индификатор сайта (site1.ua, site2.ua, poddomen.site1.ua, ...)
path - путь к файлу на указанном сайте
Прокси сервер должен отдать запрошенный файл, точно подсчитать исходящий трафик (учитывать вариант с неполной загрузкой файла), вести статистику обработанных данных.
В случае если задан не существующий индификатор, или запрашиваемый сервер выдал ошибку (403, 404) нужно вывести страницу с указанной ошибкой.
Также должна быть реализована поддержка использования правил для определённых диапазонов ip, c которых идёт запрос.
То есть возможность дифференцировать трафик.
Желательно, чтобы прокси сервер мог кэшировать результаты.
Обязательно должна быть реализована поддержка Post-запросов, сookies, html-форм.
Не должно наблюдаться проблем с обработкой больших файлов (до 50 мб).
--------
Дополнительно к прокси серверу нужно разработать небольшой биллинг с двумя уровнями.
* Уровень пользователя
- возможность добавлять и редактировать индификаторы (сайты), выводить статистику исходящего трафика в сумме и по отдельным индификаторам за определённый период (день, месяц, год, от даты X до даты Y)
(новый индификатор должен случайно генерироваться и быть уникальным)
* Уровень администратора
- управление пользователями (добавить, редактировать, удалить)
- статистика исходящего трафика по всему прокси-серверу, по отдельным пользователям, по отдельным индификаторам за определённый период (день, месяц, год, от даты X до даты Y)
- управление диапазонами ip (добавить, редактировать, удалить), настройка правил для них (проксировать запрос или перенаправить пользователя на исходный адрес)
Подробная статистика должна содержать следующие значения:
дата/время
индификатор
запрашиваемый файл (адрес)
исходный размер файла
сколько байт было передано
ip
диапазон, к которому принадлежит ip
Browser(User Agent)
Подробная статистика должна храниться 1 месяц. И дальше автоматически сжиматься.
Сжатая статистика может быть представлена в следующем виде
дата
индификатор
диапазон ip
суммарный исходящий трафик за этот день, в данном диапазоне ip
Система должна быть разработана под Apache (mode rewrite) + PHP + MySQL
Код должен быть структурированным (функции, классы), html-разметка вынесена с программной части.
Разрабатывать дизайн для биллинга не нужно.
--------
Наличие опыта разработки прокси серверов - обязательно.
Наличие готовых решений или наработок, которые сократят время выполнения проекта - приветствуется.
Предложения "шаблоны" не рассматриваются. Вы должны внимательно прочитать условия проекта и оставить предложение, в котором укажите примерную цену, сроки разработки и небольшой комментарий по предлагаемому вами решению.