Skip to content

Инструкция по запуску

Шаг 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.