我想知道是否可以将 Nginx 配置为向给定的微服务动态发送请求(无需 SSL 终止)?
在我的架构中,我有两个微服务。让我们假设它们是 localhost:5000 和 localhost:5100。我想发送所有/api
以 localhost:5000 和/services
localhost:5100开头的请求(来自 Nginx 代理)。我已经在两个微服务上配置了 SSL,所以我不需要在 Nginx 上终止 SSL。
这可能吗?
你要求做的事情是不可能的。这不是 Nginx 的限制,而是 SSL 工作方式的结果。
通过负载均衡器传递连接而不终止 SSL 需要负载均衡器选择一个后端,然后才能将 ServerHello 消息从服务器转发回客户端。但是在那个早期阶段,客户端还没有发送 URI,所以它不能用于后端的选择。
您拥有的替代方案如下:
如果您严格要求 URL 使用特定域并且 URL 中没有端口号,则大多数选项将被取消,并且在负载均衡器上终止 SSL 将是您唯一的选择。
我区分使用两个不同的IP地址和使用两个不同的域名的原因是两个域名指向同一个IP地址是可能的,但前提是客户端支持SNI。(在这种情况下,您只能使一个域为没有 SNI 的客户端工作)。