Файл server.yml
Этот файл содержит настройки подключения к серверу. Он находится:
- ОС Windows: \config\server.yml;
- ОС Linux: /config/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