Hello World http сервер
- netmap (Стороний модуль для ядра linux, https://github.com/luigirizzo/netmap)
- mtcp (userspace tcp stack, https://github.com/eunyoung14/mtcp)
- libnuma (Библиотека по работе с ядрами CPU)
Сборка проекта производитс с использованием cmake.
git clone https://github.com/ivov160/nminx.git
Весь исходный код будет склонирован в директорию nminx.
Для сборки лучше использовать отдельную директорию например build.
Конфигурирование запускается командой cmake с указанием пути до корня проекта.
Во время конфигурирования будет проверенна директория third_party на наличие исходников: nginx-1.13.8, mTcp (если SYSTEM_MTCP=OFF).
Исходники nginx используются для создания автоформирующихся заголовочных файлов, необходимых для сборки nginx частей.
Исходники mTcp используются для сборки библиотеки если опция SYSTEM_MTCP выключенна.
Доступные опции:
-
SYSTEM_MTCP (default: OFF)
Cобирать проект с уже имеющейся в системе библиотекой mTcp (поиск библиотеки будет прозодить в стандартных для Linux каталогах /usr, /usr/local)
-
MTCP_FLAGS (default: '--enable-netmap')
Опции для конфигурирования сборки mtcp. Если SYSTEM_MTCP=ON, то опция игнорируется
-
MTCP_CFLAGS (default: 'CMAKE_C_FLAGS')
CFLAGS для сборки mtcp. Если SYSTEM_MTCP=ON, то опция игнорируется
Доступны следующие опции:
- ?, h - вывод помощи
- i - ip для входящие подключения
- p - порт для входящих подключений
- c - конфиг (mtcp сонфиг)
- w - каталог процесса
Реализовать http-сервер с возможностями:
- приёма запроса GET,
- ответа на любой запрос «hello world».