AIGC在金融场景是如何落地的? 了解详情
写点什么

NGINX Plus 18 版本发布,支持动态证书加载

  • 2019-05-06
  • 本文字数:1338 字

    阅读完需:约 4 分钟

NGINX Plus 18版本发布,支持动态证书加载

NGINX已经发布了 NGINX Plus 18 版本(R18),这是它们一体化的负载平衡器、内容缓存和 web 服务器。该版本的特性包括支持动态证书加载、对 OpenID Connect 实现的增强以及为虚拟服务器指定端口范围的能力。


通过支持动态证书加载,SSL/TLS 证书现在可以按需加载,不需要在配置文件中明确地列出。根据 TLS 握手期间由服务器名称指示(Server Name Indication,简称 SNI)提供的主机名,NGINX Plus 现在可以动态地加载正确的证书。这允许在单个服务配置下托管多个安全网站。


在 NGINX Plus 之前的版本中,每个安全主机名都需要在配置文件中有自己的 server 代码块,静态地把证书和私钥指定为磁盘上的文件。这也意味着,当添加新主机名时,都必须重新加载配置。


借助该新功能,现在可以在配置中只有一个 server 块来安全地托管任意数量的站点:


server {   listen 443 ssl;

ssl_certificate /etc/ssl/$ssl_server_name.crt; # Lazy load from SNI ssl_certificate_key /etc/ssl/$ssl_server_name.key; # ditto ssl_protocols TLSv1.3 TLSv1.2 TLSv1.1; ssl_prefer_server_ciphers on;

location / { proxy_set_header Host $host; proxy_pass http://my_backend; }
复制代码


有了这个设置,基于 $ssl_server_name 变量的值,证书能够根据需要从硬盘延迟加载。然后,证书和 key 将会缓存在文件系统缓存的内存中。只要变量的值在 SNI(这是在读取请求行和头信息之前发生的)期间是可用的,那么就可以在那里使用它。


还可以在内存中(在键-值对存储中)存储 SSL/TLS 证书数据,而不是作为文件存在磁盘上。这允许证书通过Plus API以程序的方式进行安装。NGINX 建议 Plus 的整个集群部署都这么操作,因为证书数据将只需要上传一次,就可以自动传播,或者用于自动与证书颁发者(如Hashicorp Vault)集成。


在这两种情况下,在初始证书加载期间都会产生性能损失。证书加载过程只在 TLS 握手期间发生,一旦会话建立,请求处理将正常进行。根据 NGINX 的说法,该损失将造成初始 TLS 握手过程延长 20-30%。


该版本还包括主动健康检查功能的改进。该版本引入了 require 指令,允许测试任何变量的值,包括标准变量和用户定义的变量。match 块中的 require 指令允许检查一个或多个变量必须有非零值才让测试通过。


进一步的健康检查改进包括允许用 proxy_session_drop 指令来终止第4层连接。之前,如果已建立的客户端连接到的服务器不健康,那么,它们可能会遇到超时。这是因为,之前只在新客户端尝试建立连接时才考虑后端服务器的健康状态。新的 proxy_session_drop 指令将允许立即关闭该连接。启用该指令后,还可以通过一个主动健康检查的失败或上游组中服务器的删除(例如,通过 DNS 查找来删除)来触发连接终止。


该版本提供的其他功能包括:


  • 现在,OpenID Connect 实现支持不透明会话令牌、刷新令牌和注销 URL

  • NGINX Plus 服务器现在可以配置为监听指定范围的端口(如 80-90)

  • 现在可以用配置中的变量直接创建键-值对


关于该版本中包含的更多细节和其他功能,请参阅 NGINX 博客中的官方声明。NGINX Plus 可以作为 NGINX 应用平台的一部分进行试用


阅读英文原文NGINX Plus Release 18 Available with Support for Dynamic Certificate Loading


2019-05-06 08:005505
用户头像

发布了 199 篇内容, 共 79.2 次阅读, 收获喜欢 292 次。

关注

评论

发布
暂无评论
发现更多内容

在 JavaScript 中创建私有成员

devpoint

JavaScript typescript ES2020 ES6 12月日更

对研发管理的一些思考

hackstoic

研发管理 规范

对比 volatile vs synchornized

悟空聊架构

volatile 28天写作 悟空聊架构 12月日更

设计电商秒杀系统

白开水又一杯

#架构实战营

微服务架构指南

看山

微服务架构 内容合集 签约计划第二季 技术专题合集

架构4期模块一作业

曾竞超

架构实战营

创业研发团的组织建设-硬件开发流程

wood

创业 敏捷 28天写作 硬件开发

除了微服务,我们还有其他选择吗?

看山

容器 微服务架构 无服务器云函数 SOA 签约计划第二季

Java 面向对象精讲【中】

XiaoLin_Java

面向对象 死磕 Java 基础 12月日更

第八模块

Li. Mr

毕业设计

Li. Mr

模块六作业

沐风

极限数据 v0.2 版本正式发布了

极限实验室

elastic console Elastic Search 极限数据平台 ES多集群管理

电商业务服务拆分

🌾🌾🌾小麦🌾🌾🌾

架构实战营

架构实战营第4期--模块一作业

烈火干柴烛灭田边残月

架构实战营

MySQL 配置文件 my.cnf / my.ini 逐行详解

蒋川

MySQL 数据库

工程师文化:BAT 为什么不喊老板

大龄程序员老羊

CTO 工程师文化 互联网创业

毕业设计项目:设计电商秒杀系统

apple

公司的电脑总是卡顿——因为缺少工程师文化

大龄程序员老羊

CTO 工程师文化 互联网创业

专注的力量

卢卡多多

28天写作

DDD领域驱动设计落地实践系列

慕枫技术笔记

内容合集 签约计划第二季

架构实战训练营-模块1-作业

温安适

「架构实战营」

架构训练营毕业总结

apple

拆分电商系统为微服务

deng

架构实战营

架构实战营 - 毕业总结

Alex.Wu

第四模块

Li. Mr

DDD领域驱动设计落地实践:六步拆解DDD

慕枫技术笔记

架构 后端 签约计划第二季

【LeetCode】从英文中重建数字Java题解

Albert

算法 LeetCode 12月日更

在线JSON在线对比差异工具

入门小站

工具

如何实现单体架构到微服务架构的蜕变?

看山

微服务架构 单体架构 签约计划第二季

MySQL探秘(五):InnoDB锁的类型和状态查询

程序员历小冰

MySQL 28天写作 12月日更

  • 扫码添加小助手
    领取最新资料包
NGINX Plus 18版本发布,支持动态证书加载_软件工程_Matt Campbell_InfoQ精选文章