Прокси демон на python, перенапр. http-запросы

Владимир17 лет в сервисе
Данные заказчика будут вам доступны после подачи заявки
15.03.2016

Нужно сделать программу, которая принимает 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 секунд, это не должно останавливать обработку других потоков.

з.ы. вот все ТЗ, аргументированные предложения по реализации приветствуются, пишите за какую сумму можете реализовать и срок выполнения.