ssl_alpn
Директива `ssl_alpn` задаёт протоколы Application-Layer Protocol Negotiation (ALPN) для Stream-соединений в NGINX. — NGINX Stream Core
Описание
Директива `ssl_alpn` имеет решающее значение для определения ALPN-протоколов, используемых модулем Stream в NGINX. Позволяя клиентам согласовывать, какой прикладной протокол использовать во время SSL/TLS рукопожатия, `ssl_alpn` обеспечивает оптимальную производительность и совместимость для различных протоколов, таких как HTTP/2 и HTTP/1.1. При задании директива принимает одно или несколько имён протоколов в качестве аргументов, которые используются в процессе согласования ALPN. Эта директива должна находиться в допустимых контекстах stream или stream server, что означает, что она используется специально для соединений TCP или UDP, а не для HTTP. Если указано несколько протоколов, они должны перечисляться в порядке предпочтения, поскольку сервер будет представлять их клиенту в той последовательности. Кроме того, важно отметить, что если клиент не поддерживает ни один из предложенных протоколов, соединение может завершиться неудачей, поэтому необходима правильная настройка и проверка поддержки, чтобы обеспечить успешное согласование протокола клиентом. Также убедитесь, что версия OpenSSL совместима с ALPN, чтобы эта директива работала корректно.
Пример конфига
stream {
server {
listen 443 ssl;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
ssl_alpn h2 http/1.1;
}
}Убедитесь, что указанные протоколы поддерживаются клиентом, чтобы избежать сбоев соединения.
Всегда проверяйте конфигурации после изменения настроек ALPN на предмет проблем совместимости или ответов сервера.
Убедитесь, что ваша версия OpenSSL скомпилирована с поддержкой ALPN.