Начиная с версии КС #60 используется сервис artixcs-discovery вместо сервиса artixcs-rest-routing

Сервис artixcs-discovery предназначен для маршрутизации REST-запросов с портов 8080 и 80 на внутренние порты сервисов сервера.

По умолчанию при попытке отправить запрос на кассовый сервер через порты 8080 и 80 будет произведено перенаправление через контекст /ACC на порт 38054.

Если на машину с кассовым сервером установлено более одного сервера лояльности, то необходимо изменить настройки портов для каждого из них.

Про установку серверов лояльности на машину без кассового сервера и настройку их портов можно прочитать в разделе "Установка серверов лояльности на отдельные машины".

Основные настройки сервиса artixcs-discovery

Настройки сервиса artixcs-discovery доступны по адресу http://<ip>:8500/ui на вкладке "Key / Value"|"rest-routing-settings":

  • Перенос существующих настроек сервиса artixcs-rest-routing выполняется автоматически – при обновлении версии КС на #60 и выше.
  • Параметры, отсутствующие в настройках сервиса artixcs-rest-routing, необходимо добавить и задать вручную.

НаименованиеТип данныхВозможные значенияОписание
artixcs-rest | ipстроковыйПо умолчанию localhostIP-адрес, порт и контекстный путь для подключения к ядру сервера
artixcs-rest | portстроковыйПо умолчанию 38051
artixcs-rest | pathстроковыйПо умолчанию /CSrest/rest
artixcs-accounting-bonuses | ipстроковыйПо умолчанию localhost

IP-адрес, порт и контекстный путь для подключения к серверу бонусов

artixcs-accounting-bonuses | portстроковыйПо умолчанию 38055
artixcs-accounting-bonuses | pathстроковыйПо умолчанию /BONUSES
artixcs-accounting-bonuses-certificates | ipстроковыйПо умолчанию localhostIP-адрес, порт и контекстный путь для подключения к серверу бонусов и сертификатов
artixcs-accounting-bonuses-certificates | portстроковыйПо умолчанию 38056
artixcs-accounting-bonuses-certificates | pathстроковыйПо умолчанию /BONUSES_CERTIFICATES
artixcs-accounting-certificates | ipстроковыйПо умолчанию localhostIP-адрес, порт и контекстный путь для подключения к серверу сертификатов
artixcs-accounting-certificates | portстроковыйПо умолчанию 38057
artixcs-accounting-certificates | pathстроковыйПо умолчанию /CERTIFICATES

artixcs-accounting-coupons | ip

строковыйПо умолчанию localhostIP-адрес, порт и контекстный путь для подключения к серверу купонов
artixcs-accounting-coupons | portстроковыйПо умолчанию 38058
artixcs-accounting-coupons | pathстроковыйПо умолчанию /COUPONS
artixcs-accounting-bonus | ipстроковыйПо умолчанию localhostIP-адрес и порт для подключения к бонусному серверу (серверу сертификатов и купонов) при обращении через контекст /ACC
artixcs-accounting-bonus | portстроковыйПо умолчанию 38054
artixcs-clickhouse | ipстроковыйПо умолчанию localhostIP-адрес и порт для подключения к сервису artixcs-clickhouse
artixcs-clickhouse | portстроковыйПо умолчанию 8080
artixcs-controlcenter | ipстроковыйПо умолчанию localhostIP-адрес, порт и контекстный путь для подключения к ControlCenter
artixcs-controlcenter | portстроковыйПо умолчанию 18090
artixcs-controlcenter | pathстроковыйПо умолчанию /ControlCenter
artixcs-report | ipстроковыйПо умолчанию localhostIP-адрес и порт для подключения к сервису отчетов
artixcs-report | portстроковыйПо умолчанию 8077
artixcs-sale-render | ipстроковыйПо умолчанию localhostIP-адрес, порт и контекстный путь для подключения к сервису sale-renderer
artixcs-sale-render | portстроковыйПо умолчанию 38067
artixcs-sale-render | pathстроковыйПо умолчанию /receipt-image
artixcs-sales-ws | ipстроковыйПо умолчанию localhostIP-адрес, порт и контекстный путь для подключения к сервису artixcs-sales-ws
artixcs-sales-ws | portстроковыйПо умолчанию 38059
artixcs-sale-ws | pathстроковыйПо умолчанию /sales-ws
artixcs-tree-ws | ipстроковыйПо умолчанию localhostIP-адрес, порт и контекстный путь для подключения к сервису artixcs-tree-ws
artixcs-tree-ws | portстроковыйПо умолчанию 38060
artixcs-tree-ws | pathстроковыйПо умолчанию /tree-ws
В каждом конкретном случае рабочие порты серверов и сервисов могут отличаться. Подробнее в разделе "Список пакетов и образов".

Настройка работы artixcs-discovery по протоколу HTTPS

Настройка вручную необходима, если ранее не была настроена работа по протоколу HTTPS для сервиса artixcs-rest-routing.

Для работы по протоколу HTTPS необходимо:

  1. Получить или сгенерировать SSL-сертификат.

    Пример генерации самоподписанного сертификата
    sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout ./privkey.key -out ./fullchain.pem
  2. Создать директории и сохранить в ней файлы сертификата и ключа:
    • /etc/nginx/ssl/rest-routing/fullchain.pem – файл сертификата.

    • /etc/nginx/ssl/rest-routing/privkey.key – файл ключа.

  3. В веб-интерфейсе сервиса artixcs-discovery по адресу http://<ip>:8500/ui на вкладке "Key / Value" создать группу параметров "server-settings/".
  4. Добавить в группу параметры:

    KeyValue
    dualModetrue
    ssl-key-store-password<свой пароль>
    sslPort8443
  5. Перезапустить сервис consul-template:

    service consul-template restart

Особенности настройки nginx при работе с artixcs-discovery

Начиная с версии КС #60 в конфигурации nginx изменено ограничение передачи максимального размера тела запроса с 1 МБ на 15 МБ.

При работе с сервисом artixcs-discovery осуществляется перенаправление запросов с помощью сервиса nginx. В конфигурации nginx для artixcs-discovery уже заданы настройки, необходимые для корректного функционирования.

Дополнительно реализована возможность добавления индивидуальных настроек nginx через конфигурационные файлы вида:

  • /etc/nginx/conf.d/artix/ext-http*.conf – конфигурация секции http,

    Пример
    /etc/nginx/conf.d/artix/ext-http.conf
  • /etc/nginx/conf.d/artix/servers/ext-main*.conf –  конфигурация основной секции server,

    Пример
    /etc/nginx/conf.d/artix/servers/ext-main.conf
  • /etc/nginx/conf.d/artix/locations/ext-<имя сервиса>*.conf – конфигурация секции location (используется для настройки сервисов Artix).

    Пример
    /etc/nginx/conf.d/artix/locations/ext-artixcs-rest-buffering.conf

Полный набор правил для возможных подстановок приведен в конфигурационном файле /etc/nginx/conf.d/consul-nginx.conf

Подключение сервисов к Consul

Для подключения сервисов, установленных на отдельную машину, к Consul необходимо вручную добавить параметры в файл /opt/<Название сервиса>/application.properties.

Для некоторых сервисов путь к файлу может отличаться.

НаименованиеВозможные значенияОписание
spring.cloud.consul.hostПо умолчанию localhostIP-адрес и порт для подключения к Consul
spring.cloud.consul.portПо умолчанию 8500
Пример настройки
spring.cloud.consul.host=localhost
spring.cloud.consul.port=8500

Для корректного подключения сервисов к Consul можно вручную добавить параметр в файл /opt/<Название сервиса>/application.properties, прописав приоритетную сеть для подключения.

Пример настройки
spring.cloud.inetutils.preferred-networks[0]=192.169.*

При настройке сервисов в docker-контейнере через переменные окружения необходимо привести названия параметров к верхнему регистру и заменить символы "." в названиях на символы "_".

Пример задания настроек в docker-контейнере через файл .env
SPRING_CLOUD_CONSUL_HOST=localhost
SPRING_CLOUD_CONSUL_PORT=8500

Регистрация и авторизация сервисов в Consul

Взаимодействие с сервисами через Consul UI доступно только авторизованным пользователям. Для авторизации администратора используется токен SecretID, который записан в файле /opt/artixcs-discovery/bootstrap.json. Токен генерируется автоматически при установке artixcs-discovery.

Для регистрации на Consul необходимо вручную добавить параметр su.artix.discovery.enabled, со значением true в файле /opt/<Название сервиса>/application.properties. Начиная с версии КС #62 настройка скрыта и включена по умолчанию при условии использования обновленных сервисов.

Для отключения регистрации обновленных сервисов на Consul необходимо вручную добавить параметр su.artix.discovery.enabled, со значением false в файле /opt/<Название сервиса>/application.properties.

Для авторизации сервисов в Consul используются ACL-токены.

По умолчанию для всех сервисов прописан один токен. Чтобы переопределить ACL-токен сервиса необходимо:

  1. Перейти по адресу http://<ip>:8500/ui/dc1/acls/tokens.
  2. Авторизоваться в Consul UI используя SecretID.
  3. Сгенерировать новый токен.
  4. Открыть сгенерированный токен и скопировать значение поля "Token".
  5. Вручную добавить параметр spring.cloud.consul.discovery.acl-token, указав скопированное значение в файле /opt/<Название сервиса>/application.properties.
  6. Перейти по адресу http://<ip>:8500/ui/dc1/acls/tokens.

Для того чтобы закрыть сервисам доступ к Consul по старому токену необходимо:

  1. Перейти по адресу http://<ip>:8500/ui/dc1/acls/tokens.
  2. Авторизоваться в Consul UI используя SecretID.
  3. Вставить в строку поиска токен AccessorID, который записан в файле /opt/artixcs-discovery/artix-access-token.json.
  4. Открыть и удалить найденный токен.

Стартовая страница для перехода к основным сервисам Artix

Страница доступна по адресу http://<ip-адрес сервера>:8080/artix. При переходе на корневой URL http://<ip-адрес сервера> редирект на стартовую страницу осуществляется автоматически.

Доступ ко всем зарегистрированным сервисам осуществляется через единую точку входа, что позволяет быстро переходить между ними.

На странице отображается полный список основных сервисов, к которым может быть осуществлен переход:

Для возможности перехода сервис должен быть подключен и зарегистрирован в Consul.

Для данных сервисов поддерживается перенаправление запросов по коротким контекстным путям:

  • /сс – Control Center,
  • /loyalty – Loyalty (начиная с версии 1.0.60 и выше),
  • /pch – Price Checker (начиная с версии 2.3.0 и выше),
  • /ads – Digital Signage (начиная с версии 1.0.2 и выше),
  • /capp – Consultant App (начиная с версии 1.0.60 и выше).
  • No labels