Инструкция по запуску
Шаг 1: Скачиание бинарника на машину
Выполните команду:
curl -sL https://api.objects.it-pvk.ru/sup-proxy/latest/install.sh | sudo bash
Шаг 2: Настройка конфигурационного файла
Выполните команду
sudo nano /etc/sup-proxy/config.yaml
У вас откроется следующий файл:
conf.yml
— конфигурационный файл, который содержит настройки для вашего приложения.
Пример:
api_key: ""
target_url: ""
encryption_key: "" # 32 байта (256 бит)
port: "8080"
bind_address: "0.0.0.0"
log_file: ""
log_level: "debug"
# WebHook конфигурация
webhook:
port: "5678" #Заполнить, если требуется использование Webhook
bind_address: "0.0.0.0"
default_response: 200 # Стандартный код ответа от webhook
url: # Url на который перенаправиться расшифрованный ответ.
# Telegram конфигурация
telegram:
bot_token: ""
chat_id: ""
enabled: true # bool значение, указывающие на использование телеграм-бота для webhook
Настройка файла config.yaml
После установки сервиса необходимо заполнить конфигурационный файл config.yaml своими данными.
Основные параметры
api_key и encryption_key
- Выдаются при заключении договора.
- Необходимо указать их в конфигурации для корректной работы сервиса.
log_file
- Указывается путь до файла, в который сервис будет записывать логи.
- Если путь не указан или указан некорректно, файл будет создан автоматически в корне проекта.
log_level
- Определяет уровень логирования.
- Возможные значения:
debug— детальная отладочная информация, полезна на этапе тестирования.info— общая информация о работе сервиса.warning— предупреждения о потенциальных проблемах.error— ошибки, требующие внимания.critical— критические ошибки, после которых сервис может быть недоступен.
Раздел webhook
port
- Порт, на котором будет развёрнут webhook-сервис.
- Если значение не указано — webhook-сервис не будет запущен.
default_response
- Код ответа, который будет возвращать webhook.
- Рекомендуется указывать
200(успешный ответ). - При указании
500сервис продолжит работать, но на все запросы будет отвечать ошибкой500.
url
- Адрес (URL), на который будет пересылаться расшифрованный запрос, полученный webhook.
Раздел telegram
- Используется для отправки webhook-сообщений в Telegram-бота.
- Может быть полезен на этапе тестирования или отладки.
Шаг 3: Запуск
Для запуска выполнить в корне проекта команду:
sudo sup-proxy --config=./config.yaml
При запуске не из корня проекта пропишите путь до congig.yaml
Как и какие запросы отправлять на сервис
Данный сервиc выполняет роль прокси, который:
1. принимает HTTP-запросы на выделенный порт
2. модифицирует их по определенным правилам
3. перенаправляет запросы на целевой сервис (target_url)
4. получения ответа от целевого сервиса (target_url)
5. прокси парсит, расшифровывает и отправляет его обратно клиенту
Пример запроса в прокси Получение данных от сервиса (например, добавление сотрудника)
Нам необходимо отправить запрос на
https://rest.lksup.ru/v1/employee/add
Следовательно, сервис, который должен обращаться к rest.lksup.ru, будет обращаться к
http://<proxy_ip>:8080 (в соотвтвие с примером config.yaml)
И запрос будет выглядеть следующим образом
Метод: POST
URL: http://localhost:8080/v1/employee/add
Заголовки:
Authorization: Bearer <JWT_ACCESS_TOKEN>
Content-Type: application/json
Тело запроса (JSON):
{
"customId": "45678900",
"surname": "Иванов",
"name": "Иван",
"patronymic": "Иванович",
"phone": "9123456789",
"email": "example@mail.ru",
"idCategory": "UUID",
"status": "WORK"
}
В этом примере запрос содержит данные, которые отправляются прокси-сервису.
Ответ от прокси-сервиса (JSON):
{
"idEmployee": "7f21773d-1d88-4fb0-835a-a4db53befd45",
"customId": "45678900",
"surname": "Иванов",
"name": "Иван",
"patronymic": "Иванович",
"phone": "9123456789",
"email": "example@mail.ru",
"idCategory": "7f21773d-1d88-4fb0-835a-a4db53befd45",
"status": "WORK",
"createdAt": "01.01.2025",
"statusUpdateAt": "01.01.2025"
}
Прокси получает ответ от целевого сервиса, парсит его, расшифровывает и отправляет обратно клиенту в формате JSON.
Как работать с Webhook
Если у вас подключена функция webhook, необходимо настроить её в файле config.yaml.
1. Указание порта
В конфигурации задайте параметр port.
На этом порту будет работать webhook-сервис, принимающий входящие зашифрованные запросы.
2. Работа прокси-сервиса
Proxy-сервис:
1.Принимает зашифрованный запрос.
2. Расшифровывает его.
3. Записывает расшифрованный запрос в логи и выводит его в консоль.
3. Передача расшифрованных запросов на ваш сервис
Чтобы прокси мог отправлять расшифрованные запросы на ваш собственный сервис:
- укажите параметр
urlв конфигурации; - на этот адрес сервис будет пересылать данные в уже расшифрованном виде.
4. Передача в Telegram
Если вы хотите, чтобы расшифрованные запросы дополнительно отправлялись в Telegram-бота:
- заполните раздел
telegramвconfig.yaml; - сервис будет дублировать расшифрованные данные в указанный Telegram-бот.
Это может быть полезно для тестирования или получения уведомлений о входящих запросах.
5. Совместная передача
Передача расшифрованных запросов может быть настроена:
- только на сторонний
url, - только в Telegram-бот,
- либо одновременно и туда, и туда.
Таким образом, вы можете использовать разные варианты в зависимости от задач:
- для боевой эксплуатации чаще указывают
urlсвоего сервиса; - для тестирования и отладки удобно подключать Telegram.