Было необходимо реализовать свой вебсервер (аналог nginx):
Для тестирования работы вебсервера в качестве клиентов использовались:
- Браузер (Google Chrome, Safari и пр)
- Postman (Инстурмент для отправки HTTP-запросов и тестирования API)
- Siege (Программа для нагрузочного тестирования сервера)
В данной реализации требовалось сделать возможным обработку собственного конфигурационного файла, для запуска нескольких серверов на разных IP-адресах с различными параметрами:
- Прослушиваемый порт (listen)
- Имя сервера (server_name)
- Максимальный размер тела HTTP-запроса (client_max_body_size)
- Индексные файлы (index)
- Автоиндекс (autoindex)
- Каталоги (location)
- Префиксный путь (root)
- Доступные методы (allowed_method)
- Страница ошибки (error_page)
- Параметры интерфеса общего шлюза (CGI) - cgi_path, cgi_index, cgi_extension