NGINX Plus版本18支持动态证书加载
NGINX已经发布了NGINX Plus的第18版(R18),它们的全合一负载均衡器、内容缓存和Web服务器。 此版本包括支持动态证书加载、增强其OpenID连接实现以及为虚拟服务器指定端口范围的能力。
支持动态证书加载,现在可以按需加载SSL/TLS证书,而不需要在配置文件中显式列出它们。 NGINX Plus现在可以根据服务器名称指示(SNI)在TLS握手期间提供的主机名动态加载正确的认证。 这允许在单个服务器配置下托管多个安全网站。
在以前版本的NGINX Plus中,每个安全主机名在配置中都需要自己的服务器块,静态地指定认证和私钥作为磁盘上的文件。 这也意味着在添加新主机名时必须重新加载配置。
有了这一新功能,现在可以只在配置中有一个服务器块来安全地托管任何数量的站点:
使用此设置,证书将根据$ssl_server_name变量的值视需要从磁盘加载。 然后,证书和密钥将缓存在文件系统缓存中的内存中。 任何变量都可以在那里使用,只要它的值在SNI期间可用(这发生在读取请求行和标题之前)。
也可以将SSL/TLS证书数据存储在内存中(在键值存储中),而不是作为磁盘上的文件。 这允许通过PlusAPI以编程方式安装证书。 NGINX建议,对于Plus的集群部署,因为证书数据只需要上传一次才能自动传播,或者与Hashicor pVault等证书发布者自动集成。
在这两种情况下,将在初始证书加载期间发生性能罚款。 证书加载过程只发生在TLS握手期间,一旦会话建立,请求处理将正常发生。 根据NGINX的说法,这种惩罚将导致最初的TLS握手时间延长20-30%..
此版本还包括对主动健康检查功能的改进。 本版本引入了需求指令,允许测试任何变量的值,包括标准变量和用户定义变量。 匹配块中的require指令允许检查一个或多个变量必须有一个非零值才能通过测试。
健康检查的进一步改进包括允许使用proxy_session_drop指令终止第4层连接。 以前,如果连接到的服务器不健康,已建立的客户端可能会经历超时。 这是因为后端服务器健康状态以前只在新客户端试图建立连接时才被考虑。 新的proxy_session_drop指令将允许立即关闭连接。 启用此指令后,连接的终止也可以由活动健康检查失败或从上游组中删除服务器触发(例如。 通过DNS查找删除)。
本版本中的其他功能包括:
有关本版本中包含的更多细节和其他功能,请查看NGINX博客上的官方公告。 NGINX Plus可以作为NGINX应用平台的一部分进行试用。