Appearance
Конфигурация сервиса Gateway
Логгер
Ключ | Описание |
---|---|
gateway.log.lvl | уровень логгирования приложения 5 - debug 4 - info 3 - warning 2 - error Пример env: POTENTIAL_GATEWAY_LOG_LVL=5 |
gateway.log.path | путь до лога сервиса Пример env: POTENTIAL_GATEWAY_LOG_PATH=/tmp/next_box/gateway.log |
пример части конфигурации в yml конфиге
yaml
gateway:
log:
lvl: 5
path: /tmp/next_box/gateway.log
Внешний Http сервер
Ключ | Описание |
---|---|
gateway.http.host | Адрес внешнего http сервера Пример env: POTENTIAL_GATEWAY_HTTP_HOST=0.0.0.0 |
gateway.http.port | Порт внешнего http сервера Пример env: POTENTIAL_GATEWAY_HTTP_PORT=6006 |
gateway.http.max_multipart_body_size | Максимальный размер тела, при мультипарт запросах POTENTIAL_GATEWAY_HTTP_MAX_MULTIPART_BODY_SIZE=4.3980465e+12 |
gateway.http.read_timeout | Максимальная продолжительность чтения всего запроса, включая текст. Нулевое или отрицательное значение означает, что тайм-аута не будет. POTENTIAL_GATEWAY_HTTP_READ_TIMEOUT=10000 |
gateway.http.write_timeout | Максимальное время до истечения времени ожидания записи ответа. Оно сбрасывается всякий раз, когда считывается заголовок нового запроса. Как и ReadTimeout, оно не позволяет обработчикам принимать решения для каждого отдельного запроса. Нулевое или отрицательное значение означает, что тайм-аута не будет. Пример env: POTENTIAL_GATEWAY_HTTP_WRITE_TIMEOUT=10000 |
gateway.http.limiter.enable | Включить ограничение количества запросов по ip. Пример env: POTENTIAL_GATEWAY_HTTP_LIMITER_ENABLE=true |
gateway.http.limiter.period_sec | Период ограничения запросов в секундах. Пример env: POTENTIAL_GATEWAY_HTTP_LIMITER_PERIOD_SEC=60 |
gateway.http.limiter.limit | Максимальное количество запросов за период указанный в period_sec. Пример env: POTENTIAL_GATEWAY_HTTP_LIMITER_LIMIT=1000 |
пример части конфигурации в yml конфиге
yaml
gateway:
http:
host: 0.0.0.0
max_multipart_body_size: 0
port: 6006
read_timeout: 0
write_timeout: 0
limiter:
enable: true
period_sec: 60
limit: 1000
Внутренний Http сервер
Ключ | Описание |
---|---|
gateway.internal_http.host | Адрес внутреннего http сервера Пример env: POTENTIAL_GATEWAU_INTERNAL_HTTP_HOST=0.0.0.0 |
gateway.internal_http.port | Порт внутреннего http сервера Пример env: POTENTIAL_GATEWAY_INTERNAL_HTTP_PORT=6001 |
gateway.internal_http.max_multipart_body_size | Максимальный размер тела, при мультипарт запросах POTENTIAL_GATEWAY_INTERNAL_HTTP_MAX_MULTIPART_BODY_SIZE= |
gateway.internal_http.max_header_size | Максимальный размер заголовков POTENTIAL_GATEWAY_HTTP_MAX_HEADER_SIZE= |
gateway.internal_http.read_timeout | Максимальная продолжительность чтения всего запроса, включая текст. Нулевое или отрицательное значение означает, что тайм-аута не будет. POTENTIAL_GATEWAY_HTTP_READ_TIMEOUT= |
gateway.internal_http.write_timeout | Максимальное время до истечения времени ожидания записи ответа. Оно сбрасывается всякий раз, когда считывается заголовок нового запроса. Как и ReadTimeout, оно не позволяет обработчикам принимать решения для каждого отдельного запроса. Нулевое или отрицательное значение означает, что тайм-аута не будет. Пример env: POTENTIAL_GATEWAY_HTTP_WRITE_TIMEOUT= |
gateway.security.mtls_enable | Включение шифрование трафика mTLS между сервисами NB. Пример env: POTENTIAL_GATEWAY_SECURITY_MTLS_ENABLE=false |
gateway.security.client_cert_key_path | Приватный ключ сервера для mTLS. Пример env: POTENTIAL_GATEWAY_SECURITY_SERVER_CERT_KEY_PATH=./host.docker.internal.key |
gateway.security.client_cert_path | Сертификат сервера для mTLS. Пример env: POTENTIAL_GATEWAY_SECURITY_SERVER_CERT_PATH=./host.docker.internal.crt |
gateway.security.server_cert_key_path | Приватный ключ клиента для mTLS. Пример env: POTENTIAL_GATEWAY_SECURITY_CLIENT_CERT_KEY_PATH=./client.key |
gateway.security.server_cert_path | Сертификат сервера для mTLS. Пример env: POTENTIAL_GATEWAY_SECURITY_CLIENT_CERT_PATH=./client.crt |
gateway.security.ca_cert_path | Корневой сертификат для mTLS. Пример env: POTENTIAL_GATEWAY_SECURITY_CA_CERT_PATH=./cert.crt |
пример части конфигурации в yml конфиге
yaml
gateway:
internal_http:
host: 0.0.0.0
port: 6001
max_multipart_body_size: 0
max_header_size: 0
read_timeout: 0
write_timeout: 0
security:
ca_cert_path: ./cert.crt
client_cert_key_path: ./client.key
client_cert_path: ./client.crt
mtls_enable: false
server_cert_key_path: ./host.docker.internal.key
server_cert_path: ./host.docker.internal.crt
База данных
Ключ | Описание |
---|---|
gateway.database.dsn | Dsn для доступа к базе данных в формате: postgres://<login>:<password>@<address>:<port>/gateway" login - логин базыpassword - пароль от базыaddress - адрес до базыport - порт до базыПример env: POTENTIAL_GATEWAY_DATABASE_DSN=postgres://admin:admin@127.0.0.1:5432/gateway |
пример части конфигурации в yml конфиге
yaml
gateway:
database:
dsn: postgres://admin:admin@127.0.0.1:5432/gateway
Общие настройки сервиса
Ключ | Описание |
---|---|
gateway.service.token | Токен для межсервисного общения. Такой же токен должен быть у каждого сервиса nextbox. Пример env: POTENTIAL_GATEWAY_SERVICE_TOKEN=qwe123 |
gateway.service.name | Название сервиса Пример env: POTENTIAL_GATEWAY_SERVICE_NAME=Gateway |
gateway.service.route_name | Название роута сервиса, лучше не менять, иначе возможны проблемы в общении между сервисами! Пример env: POTENTIAL_GATEWAY_SERVICE_ROUTE_NAME=gateway |
gateway.service.back_url | Адрес по которому обращаются к сервису другие сервисы NB. Пример env: POTENTIAL_GATEWAY_SERVICE_BACK_URL=http://127.0.0.1:6005 |
gateway.service.instance_number | Номер сервиса. Используется для горизонтального масштабирования сервисов. В текущем сервисе не должен отличаться от 1 Пример env: POTENTIAL_GATEWAY_SERVICE_INSTANCE_NUMBER=1 |
gateway.discovery.url | Адрес discovery сервиса в NB. В котором регистрируются все сервисы в NB Пример env: POTENTIAL_GATEWAY_DISCOVERY_URL=http://127.0.0.1:6005 |
пример части конфигурации в yml конфиге
yaml
gateway:
service:
back_url: http://127.0.0.1:6005
instance_number: 1
name: Gateway
route_name: gateway
token: qwe123
discovery:
url: http://127.0.0.1:6001
Безопасность
Ключ | Описание |
---|---|
gateway.tokens.sign_key | Секретный ключ для подписи авторизационных JWT токенов. Пример env: POTENTIAL_GATEWAY_TOKENS_LIMIT_SIGN_KEY=qwe123 |
пример части конфигурации в yml конфиге
yaml
gateway:
tokens:
sign_key: qwe123
Настройки rabbitmq
Ключ | Описание |
---|---|
gateway.rabbit_mq.user | Логин пользователя в rabbitmq. Пример env: POTENTIAL_GATEWAY_RABBIT_MQ_USER=guest |
gateway.rabbit_mq.password | Пароль пользователя в rabbitmq. Пример env: POTENTIAL_GATEWAY_RABBIT_MQ_PASSWORD=guest |
gateway.rabbit_mq.host | Адрес сервера rabbitmq. Пример env: POTENTIAL_GATEWAY_RABBIT_MQ_HOST=127.0.0.1 |
gateway.rabbit_mq.port | Порт сервера rabbitmq. Пример env: POTENTIAL_GATEWAY_RABBIT_MQ_PORT=5672 |
gateway.rabbit_mq.vhost | vhost rabbitmq. Пример env: POTENTIAL_GATEWAY_RABBIT_MQ_VHOST= |
пример части конфигурации в yml конфиге
yaml
gateway:
rabbit_mq:
host: 127.0.0.1
password: guest
port: "5672"
user: guest
vhost: ""
Настройки redis
Ключ | Описание |
---|---|
gateway.redis.host | Адрес redis. Пример env: POTENTIAL_GATEWAY_REDIS_HOST=127.0.0.1 |
gateway.redis.port | Порт redis. Пример env: POTENTIAL_GATEWAY_REDIS_PORT=6379 |
gateway.redis.login | Логин redis. Пример env: POTENTIAL_GATEWAY_REDIS_LOGIN= |
gateway.redis.password | Пароль redis. Пример env: POTENTIAL_GATEWAY_REDIS_PASSWORD= |
gateway.redis.db_num | Номер базы redis. Пример env: POTENTIAL_GATEWAY_REDIS_DB_NUM=0 |
пример части конфигурации в yml конфиге
yaml
gateway:
redis:
db_num: 0
host: 127.0.0.1
login: ""
password: ""
port: 6379