ssl_alpn

指令 `ssl_alpn` 指定了 NGINX 中 Stream 连接使用的应用层协议协商 (ALPN) 协议。 — NGINX Stream Core

ssl_alpn
streamstream server
语法ssl_alpn protocol1 protocol2 ...;
默认值none
上下文stream, stream server
模块NGINX Stream Core
参数1+

说明

`ssl_alpn` 指令对于定义 NGINX Stream 模块使用的 ALPN 协议至关重要。通过允许客户端在 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 支持。