Прокси демон на python, перенапр. http-запросы
Нужно сделать программу, которая принимает http-запросы GET или POST и перенаправляет запрос на другой URL и отдает ответ.
пример работы программы по шагам:
1. приходит запрос на демон http://192.168.0.1:5555/proxy/url1/?a=1&b=c&d=werty
где url1 - означает что id URL = 1
2. записываем входной запрос в таблицу MySQL базы id | 2012-12-22 12:23:59 | /abc/xyz?a=1&b=c&d=werty (при включенном логировании пишутся еще http-заголовки которые отправил клиент)
3. выбираем в таблице MySQL - базы url c идентификатором = 1 (пусть это будет "http://ya.ru/blablabla/")
4. перенаправляем запрос на выбранный url: http://ya.ru/blablabla/?a=1&b=c&d=werty (да, такой момент: вх. запрос может быть GET или POST выходной должен быть соответствующий - можно, например, записать в поле таблицы какой тип запроса был)
5. полученный ответ отдать клиенту (при включенном логгировании ответ пишется в лог).
6. если ответа нет, то нужно записать в таблицу (которая использовалась в пункте 2) что запрос превысил таймаут.
7. необходимо, чтобы была команда (которая отправлялась например через командную строку) для перезагрузки конфига (без перезагрузки всего демона с запущенными процессами/потоками) - это для параметров, которые нужно держать в памяти
8. нужна команда (которая отправлялась например через командную строку) по котрой бы он отвечал о своем статусе
9. нужна команда для перезагрузки/остановки/запуска демона с его процессами/потоками.
Комментарии:
думаю программа должна использовать SocketServer, fork, threading (в конфиге задается макс количество потоков, примерно 200)
Программа работает как демон слушает заданный в конфиге порт
Запрос URL-a может занять какое-то время - например, до 10 секунд, это не должно останавливать обработку других потоков.
з.ы. вот все ТЗ, аргументированные предложения по реализации приветствуются, пишите за какую сумму можете реализовать и срок выполнения.