Возможно, вы захотите заглянуть на встроенный в ядро веб-сервер TUX , чтобы получить рекомендации по вашему проекту. Я бы не рекомендовал с использованием TUX (системный вызов sendfile(2)
устраняет огромную часть потенциального преимущества TUX в скорости, позволяя отправлять файлы в единственном экземпляре, а риски запуска сервера в ядре значительно перевешивают любые потенциальное оставшееся преимущество в скорости из-за уменьшения переключения контекста).
Но в учебных целях TUX должен хорошо работать.