Мне нужна масштабируемая и производительная HTTP-программа / приложение, которое будет использоваться для статической отправки / загрузки файлов. Поэтому мне нужна поддержка только для операций GET
и PUT
.
Однако есть несколько дополнительных функций, которые мне нужны:
- Пользовательская аутентификация: мне нужно
сверяйте учетные данные с базой данных для каждого запроса.
Таким образом, я должен быть в состоянии интегрировать
взаимодействие с базой данных.
- Поддержка
подписанные ключи доступа: доступ к
ресурсы через
PUT
должны быть подписаны
используя ключ типа http://uri/?key=foo Затем ключ содержит информацию о запросе, например, md5 (пользователь + путь + секрет), который позволяет мне блокировать нежелательные запросы. Приложение / сервер должны позволить мне проверить это.
- Производительность. Я бы хотел как можно больше избегать подачи контента. В противном случае все приложение может быть реализовано в Perl / etc. в несколько строк как CGI.
Perlbal (в режиме веб-сервера) выглядит неплохо, однако однопоточная модель не подходит для поиска в моей базе данных и также не поддерживает строки запросов.
Lighttp / Nginx /… имеют несколько модулей для этих задач, однако нереально собрать все вместе, не заканчивая написанием собственных расширений / модулей.
Так как бы вы решили это? Есть ли другие легковесные веб-серверы для этого?
Должен ли я реализовать приложение внутри веб-сервера (т.е. CGI). Как можно избежать / ускорить передачу содержимого между веб-сервером и моим приложением.
Заранее спасибо!