1. Обзор
Веб-приложения Spring Boot по умолчанию включают предварительно настроенный встроенный веб-сервер. Однако в некоторых ситуациях мы хотели бы изменить конфигурацию по умолчанию в соответствии с пользовательскими требованиями.
В этом руководстве мы рассмотрим несколько распространенных вариантов использования для настройки встроенного сервера Tomcat с помощью файла application.properties .
2. Общие Встроенные конфигурации Tomcat
2.1. Адрес и порт сервера
Наиболее распространенной конфигурацией , которую мы, возможно, захотим изменить, является номер порта :
server.port=80
Если мы не предоставляем параметр server.port , он имеет значение 8080 по умолчанию .
В некоторых случаях мы можем установить сетевой адрес , к которому должен привязываться сервер. Другими словами, мы определяем IP-адрес, по которому наш сервер будет прослушивать :
server.address=my_custom_ip
По умолчанию это значение равно 0.0.0.0 который позволяет подключаться через все адреса IPv4. Установка другого значения, например localhost– 127.0.0.1 – сделает сервер более избирательным.
2.2. Обработка ошибок
По умолчанию Spring Boot предоставляет стандартную веб-страницу с ошибкой . Эта страница называется Белая метка . Он включен по умолчанию, но если мы не хотим отображать информацию об ошибках, мы можем отключить его:
server.error.whitelabel.enabled=false
Путь по умолчанию к Белой метке – это /ошибка . Мы можем настроить его, установив параметр server.error.path :
server.error.path=/user-error
Мы также можем задать свойства, которые будут определять, какая информация об ошибке будет представлена. Например, мы можем включить сообщение об ошибке и трассировку стека:
server.error.include-exception=true server.error.include-stacktrace=always
Наши учебники по обработке сообщений об исключениях для REST и настройка страницы ошибок с белой меткой объясняют больше об обработке ошибок при весенней загрузке.
2.3. Подключения к серверу
При работе в контейнере с низким ресурсом мы могли бы уменьшить нагрузку на процессор и память. Один из способов сделать это-ограничить количество одновременных запросов, которые могут обрабатываться нашим приложением. И наоборот, мы можем увеличить это значение, чтобы использовать больше доступных ресурсов для повышения производительности.
В Spring Boot мы можем определить максимальное количество рабочих потоков Tomcat:
server.tomcat.threads.max=200
При настройке веб-сервера также может быть полезно установить тайм-аут подключения к серверу . Это максимальное время, в течение которого сервер будет ждать, пока клиент сделает запрос после подключения, прежде чем соединение будет закрыто:
server.connection-timeout=5s
Мы также можем определить максимальный размер заголовка запроса:
server.max-http-header-size=8KB
Максимальный размер тела запроса:
server.tomcat.max-swallow-size=2MB
Или максимальный размер всего запроса на публикацию:
server.tomcat.max-http-post-size=2MB
2.4. SSL
Чтобы включить поддержку SSL в нашем приложении Spring Boot, нам нужно установить для свойства server.ssl.enabled значение true и определить протокол SSL:
server.ssl.enabled=true server.ssl.protocol=TLS
Мы также должны настроить пароль, тип и путь к хранилищу ключей, в котором хранится сертификат:
server.ssl.key-store-password=my_password server.ssl.key-store-type=keystore_type server.ssl.key-store=keystore-path
И мы также должны определить псевдоним, который идентифицирует наш ключ в хранилище ключей:
server.ssl.key-alias=tomcat
Для получения дополнительной информации о конфигурации SSL посетите наш HTTPS с использованием самозаверяющего сертификата в статье Spring Boot.
2.5. Журналы доступа к серверу Tomcat
Журналы доступа Tomcat очень полезны при попытке измерить количество посещений страниц, активность сеанса пользователя и так далее.
Чтобы включить журналы доступа, просто установите:
server.tomcat.accesslog.enabled=true
Мы также должны настроить другие параметры, такие как имя каталога, префикс, суффикс и формат даты, добавляемые к файлам журнала:
server.tomcat.accesslog.directory=logs server.tomcat.accesslog.file-date-format=yyyy-MM-dd server.tomcat.accesslog.prefix=access_log server.tomcat.accesslog.suffix=.log
3. Заключение
В этом уроке мы изучили несколько распространенных конфигураций Tomcat встроенного сервера. Чтобы просмотреть дополнительные возможные конфигурации, пожалуйста, посетите официальную страницу Spring Boot application properties docs .
Как всегда, исходный код для этих примеров доступен на GitHub .