Начиная с версии КС #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 | строковый | По умолчанию localhost | IP-адрес, порт и контекстный путь для подключения к ядру сервера |
| 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 | строковый | По умолчанию localhost | IP-адрес, порт и контекстный путь для подключения к серверу бонусов и сертификатов |
| artixcs-accounting-bonuses-certificates | port | строковый | По умолчанию 38056 | |
| artixcs-accounting-bonuses-certificates | path | строковый | По умолчанию /BONUSES_CERTIFICATES | |
| artixcs-accounting-certificates | ip | строковый | По умолчанию localhost | IP-адрес, порт и контекстный путь для подключения к серверу сертификатов |
| artixcs-accounting-certificates | port | строковый | По умолчанию 38057 | |
| artixcs-accounting-certificates | path | строковый | По умолчанию /CERTIFICATES | |
artixcs-accounting-coupons | ip | строковый | По умолчанию localhost | IP-адрес, порт и контекстный путь для подключения к серверу купонов |
| artixcs-accounting-coupons | port | строковый | По умолчанию 38058 | |
| artixcs-accounting-coupons | path | строковый | По умолчанию /COUPONS | |
| artixcs-accounting-bonus | ip | строковый | По умолчанию localhost | IP-адрес и порт для подключения к бонусному серверу (серверу сертификатов и купонов) при обращении через контекст /ACC |
| artixcs-accounting-bonus | port | строковый | По умолчанию 38054 | |
| artixcs-clickhouse | ip | строковый | По умолчанию localhost | IP-адрес и порт для подключения к сервису artixcs-clickhouse |
| artixcs-clickhouse | port | строковый | По умолчанию 8080 | |
| artixcs-controlcenter | ip | строковый | По умолчанию localhost | IP-адрес, порт и контекстный путь для подключения к ControlCenter |
| artixcs-controlcenter | port | строковый | По умолчанию 18090 | |
| artixcs-controlcenter | path | строковый | По умолчанию /ControlCenter | |
| artixcs-report | ip | строковый | По умолчанию localhost | IP-адрес и порт для подключения к сервису отчетов |
| artixcs-report | port | строковый | По умолчанию 8077 | |
| artixcs-sale-render | ip | строковый | По умолчанию localhost | IP-адрес, порт и контекстный путь для подключения к сервису sale-renderer |
| artixcs-sale-render | port | строковый | По умолчанию 38067 | |
| artixcs-sale-render | path | строковый | По умолчанию /receipt-image | |
| artixcs-sales-ws | ip | строковый | По умолчанию localhost | IP-адрес, порт и контекстный путь для подключения к сервису artixcs-sales-ws |
| artixcs-sales-ws | port | строковый | По умолчанию 38059 | |
| artixcs-sale-ws | path | строковый | По умолчанию /sales-ws | |
| artixcs-tree-ws | ip | строковый | По умолчанию localhost | IP-адрес, порт и контекстный путь для подключения к сервису artixcs-tree-ws |
| artixcs-tree-ws | port | строковый | По умолчанию 38060 | |
| artixcs-tree-ws | path | строковый | По умолчанию /tree-ws |
Настройка работы artixcs-discovery по протоколу HTTPS
Настройка вручную необходима, если ранее не была настроена работа по протоколу HTTPS для сервиса artixcs-rest-routing.
Для работы по протоколу HTTPS необходимо:
Получить или сгенерировать SSL-сертификат.
Пример генерации самоподписанного сертификатаsudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout ./privkey.key -out ./fullchain.pem
- Создать директории и сохранить в ней файлы сертификата и ключа:
/etc/nginx/ssl/rest-routing/fullchain.pem– файл сертификата./etc/nginx/ssl/rest-routing/privkey.key– файл ключа.
- В веб-интерфейсе сервиса
artixcs-discoveryпо адресуhttp://<ip>:8500/uiна вкладке"Key / Value"создать группу параметров"server-settings/". Добавить в группу параметры:
Key Value dualMode true ssl-key-store-password <свой пароль> sslPort 8443 Перезапустить сервис 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 | По умолчанию localhost | IP-адрес и порт для подключения к 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-контейнере через переменные окружения необходимо привести названия параметров к верхнему регистру и заменить символы "." в названиях на символы "_".
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-токен сервиса необходимо:
- Перейти по адресу
http://<ip>:8500/ui/dc1/acls/tokens. - Авторизоваться в Consul UI используя
SecretID. - Сгенерировать новый токен.
- Открыть сгенерированный токен и скопировать значение поля "Token".
- Вручную добавить параметр
spring.cloud.consul.discovery.acl-token, указав скопированное значение в файле/opt/<Название сервиса>/application.properties. - Перейти по адресу
http://<ip>:8500/ui/dc1/acls/tokens.
Для того чтобы закрыть сервисам доступ к Consul по старому токену необходимо:
- Перейти по адресу
http://<ip>:8500/ui/dc1/acls/tokens. - Авторизоваться в Consul UI используя
SecretID. - Вставить в строку поиска токен
AccessorID, который записан в файле/opt/artixcs-discovery/artix-access-token.json. - Открыть и удалить найденный токен.
Стартовая страница для перехода к основным сервисам Artix
Страница доступна по адресу http://<ip-адрес сервера>:8080/artix. При переходе на корневой URL http://<ip-адрес сервера> редирект на стартовую страницу осуществляется автоматически.
Доступ ко всем зарегистрированным сервисам осуществляется через единую точку входа, что позволяет быстро переходить между ними.
На странице отображается полный список основных сервисов, к которым может быть осуществлен переход:
artixcs-controlcenter– Control Center,tomcat8-artix– Loyalty,docker-образ artixcs-pricechecker– Price Checker,artixcs-ads– Digital Signage,artixcs-consultant-app– Consultant App.
Для данных сервисов поддерживается перенаправление запросов по коротким контекстным путям:
/сс– 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 и выше).
