Файл server.yml
Этот файл содержит настройки подключения к серверу. Он находится:
Атрибуты файла
Атрибут endpoints — список конечных точек сервера, которые отличаются протоколом: HTTP или HTTPS. Сервер может иметь следующие варианты настройки:
- одна конечная точка HTTP;
- одна конечная точка HTTPS;
- две конечные точки: HTTPS и HTTP, выполняющая переадресацию на HTTPS.
Атрибут web-sessions-limit — максимальное количество веб-сессий в сервере. По умолчанию 20 000.
Атрибуты конечных точек (endpoints):
-
protocol
Протокол работы, обязательный атрибут, допустимые значения: http или https
-
address
Адрес сокета для конечной точки, в формате
host:port
, обязательный атрибут. В качествеhost
может использоваться маска. При использовании ipv6 адрес должен заключаться в квадратные скобки -
threads
Настройка потоков, выделяемых сервером для обслуживания конечной точки, необязательная секция
-
acceptor-thread-count
Число потоков, осуществляющих подключение новых клиентов (значение по умолчанию = 1)
-
selector-thread-count
Число потоков, осуществляющих прием сетевых запросов (значение по умолчанию = 10)
-
worker-thread-count
Число потоков, осуществляющих обработку запросов для установленных соединений (значение по умолчанию равно количеству ядер, которое определяет
java.lang.Runtime#availableProcessors
). Для реальной эксплуатации рекомендуется устанавливать больше. Слишком больших значений (> 500) рекомендуется избегать, так как сильно возрастают накладные расходы на переключение потоков и блокировки
-
Для конечной точки HTTP можно указать следующие атрибуты:
-
redirect
Адрес в формате
host:port
для переадресации на HTTPS. Если адрес не указан и в настройках сервера заданы конечные точки для двух протоколов, то адрес определяется по адресу сокета конечной точки HTTPS. Адрес необходимо указать, если сервер работает за reverse proxy
Для HTTPS-конечной точки можно указать следующие атрибуты:
-
server-certificate-store
Имя хранилища серверного сертификата (из security.yml). Для исключения путаницы такое хранилище д олжно содержать только один сертификат сервера. Если в хранилище более одного сертификата с приватным ключом, то будет использован первый
-
server-certificate-password
Необязательный. Пароль для доступа к сертификату сервера (приватному ключу). Если пароль не задан, то будет использоваться пароль от хранилища сертификатов
Пример настроек сервера
server:
endpoints:
- address: 127.0.0.1:9090
protocol: http
threads:
worker-thread-count: 32