An open API service indexing awesome lists of open source software.

https://github.com/the0nix/caching-server

Версия проекта на 02.06.17. Изменения видны в секциях "Features" и "Installation and usage".
https://github.com/the0nix/caching-server

c epoll http server

Last synced: about 2 months ago
JSON representation

Версия проекта на 02.06.17. Изменения видны в секциях "Features" и "Installation and usage".

Awesome Lists containing this project

README

          

# Проект "Кэширующий веб-сервер".
### Таболов Тамерлан
### Группа БПМИ154-1

* [Отчёт](#report)
* [Описание актуальности решаемой задачи](#description)
* [Используемые технологии](#technologies)
* [Примерный план](#plan)
* [Installation and usage](#usage)

# Отчёт
Отчёт к КТ2 можно найти по ссылке: [отчёт](https://yadi.sk/i/jfhp_2UV3GGAS5)

# Описание актуальности решаемой задачи
Проект является учебным и потому не претендует на выход в релиз. На данный момент рынок веб-серверов практически полностью окуппирован серверами *Apache* и *nginx*, из которых второй намного ближе к теме проекта, так как так же относится к разряду кэширующих веб-серверов.

# Технологии
В проекте будут использоваться следующие технологии:
* Технологии стандартной библиотеки языка C, в том числе низкоуровневые технологии для работы с сокетами.
* Технологии ядра **Linux**.
* Протокол **HTTP**
* **Epoll** — для предотвращения блокировки потока во время соединения с клиентом и как гораздо менее ресурсоёмкая альтернатива созданию нескольких процессов.

# Features

На данный момент реализовано подключение клиентов, парсинг HTTP запросов, выдача файлов по запросам с использованием технологии Epoll, обработка ошибочных запросов и запросов к несуществующим файлам, проксирование.

# Installation and usage

$ git clone https://github.com/The0nix/Caching-Server.git
$ cd Caching-Server
$ mkdir bin; cd bin
$ cmake ../
$ make
$ ./caser -p 8080 # launch in default mode
$ ./caser -p 8080 -a http://pikabu.ru # launch in proxy mode

В папку bin необходимо поместить файлы сайта. Например: `echo ‘

Hello, world

’ > index.html`.

Для доступа к серверу можно воспользоваться браузером, обратившись к нужному адресу (по умолчанию: `localhost:/`) или, например, утилитой *curl*: `curl localhost:/`.

Для отключения сервера используется комбинация клавиш ``

### Options:
* `-d` — debug info
* `-p port` — specify port
* `-h` — help
* `-a service://host` — proxy to `host` via `service`