** TODO: Переписать README **
Для загрузки проекта, используйте следующую команду:
git clone https://github.com/f1est/proxy.git --recurse-submodules
Для сборки проекта, потребуются следующие библиотеки:
- libevent (git clone https://github.com/libevent/libevent.git)
- libconfig (git clone https://github.com/hyperrealm/libconfig.git)
- openssl (wget https://www.openssl.org/source/openssl-1.0.2l.tar.gz)
Чтобы не тянуть libevent на целевое устройство, собираем проект с этой библиотекой статикой. Для этого в Makefile исправить следующие строки:
ARCH_LIBEVENT_PATH = /путь/к/архивам/ libevent_openssl.a и libevent.a
INCLUDE_LIBEVENT_PATH = /путь/к/заголовочным/файлам/ libevent
Тоже самое для libconfig:
ARCH_LIBCONFIG_PATH = /путь/к/архивe/libconfig.a
INCLUDE_LIBCONFIG_PATH = /путь/к/заголовочному/файлу/libconfig.h
далее выполнить команду:
make
./embeddedProxy -h
Usage: ./embeddedProxy [options]
Options are:
-d Do not daemonize (run in foreground).
-c FILE Use an alternate configuration file.
-h Display this usage information.
конфиг файл лежит в директории conf/example.cfg
пример запуска:
./embeddedProxy -d -c conf/example.cfg
Основные параметры:
listen_address - IP-адрес и порт на котором слушаем входящие соединения. (Принимаемое значение строка: "ip_address:port")
connect_address - IP-адрес и порт на котором слушает входящие соединения приложение (сервер). (Принимаемое значение строка: "ip_address:port")
max_listeners - максимальное число одновременных соединений (максимальное число сессий). (Принимаемое значение integer)
user - ID или Name пользователя от которого будет запускаться приложение при попытке запуска от root'a. (Принимаемое значение integer/строка: user = "1000", user = 1000 ,user = "username")
group - по аналогии параметру user
core_module - включает/выключает web_tool_kit. В выключенном состоянии трафик просто перенаправляется между клиентом (браузер) и сервером (приложение). (Принимаемое значение true/false)
http_server_timeout - таймаут. Время которое прокси ождидает ответа от сервера. (Принимаемое значение integer)
pid_file - Путь к файлу в котором будет храниться ID-процесса при запуске без параметра -d (Принимаемое значение строка: "путь в кавычках")
max_length_of_cookie - максимальная длина куки в байтах (Принимаемое значение integer)
max_num_of_cookies - максимальное количество кук в запросе (Принимаемое значение integer)
expires_of_cookie - время жизни куки (Принимаемое значение integer)