将NGINX配置为反向代理(分派)到已配置SSL的后端服务

将NGINX配置为反向代理(分派)到已配置SSL的后端服务,ssl,nginx,nginx-reverse-proxy,Ssl,Nginx,Nginx Reverse Proxy,我有一个物理服务器和一个IP地址。在该服务器上,我配置了三个(数量3)后端服务,每个都有自己的公共DNS域名,每个都有自己的让我们加密SSL证书,如图所示: - svc01.example.com:1443 # Own DNS domain-name and SSL certificates. - svc02.example.com:2443 # Own DNS domain-name and SSL certificates. - svc03.example.com:3443 #

我有一个物理服务器和一个
IP地址
。在该服务器上,我配置了三个(数量3)后端服务,每个都有自己的公共DNS域名每个都有自己的
让我们加密SSL证书
,如图所示:

 - svc01.example.com:1443  # Own DNS domain-name and SSL certificates.
 - svc02.example.com:2443  # Own DNS domain-name and SSL certificates.
 - svc03.example.com:3443  # Own DNS domain-name and SSL certificates.
它们共存于同一物理服务器上,因此每个都配置为使用自己的
端口
;但是,svc01 | 02 | 03.example.com的
公共IP地址
是相同的

请记住,这些后端服务已经配置了SSL(我无法撤消),如何配置
NGINX
来实现以下简单转发(几乎像一个调度器):

遗憾的是,我不是一个
NGINX
人,因此非常感谢为每个人提供完整的配置文件:

- svc01_nginx.conf
- svc02_nginx.conf
- scv03_nginx.conf

提前谢谢你

感谢@SteffenUllrich在上面的评论中提供的提示,解决方案如下所示。我不是一个
nginx
的家伙,我不确定是否有其他最佳实践可以使此配置更安全或更健壮(免费评论),但这只是一个开始

/etc/nginx/nginx.conf

load_module /usr/lib/nginx/modules/ngx_stream_module.so;
  
events {}

stream {    
  map $ssl_preread_server_name $targetBackend {
    svc01.example.com svc01.example.com:1443
    svc02.example.com svc02.example.com:2443
    svc03.example.com svc03.example.com:3443    
  }

  server {
    listen 8443;    
    # ==============================================================
    # http://nginx.org/en/docs/stream/ngx_stream_proxy_module.html
    # ==============================================================
    proxy_connect_timeout 10s;
    proxy_timeout 600s;
    resolver 8.8.8.8 1.1.1.1 8.8.4.4 1.0.0.1;
    proxy_pass $targetBackend;
    # ==============================================================

    # ==============================================================
    # http://nginx.org/en/docs/stream/ngx_stream_ssl_preread_module.html
    # ==============================================================
    ssl_preread on;
    # ==============================================================
  }
}

我希望这能帮助别人。(◠﹏◠)

请参阅@SteffenUllrich谢谢!我看了一眼,它看起来就像我需要的一样。@SteffenUllrich仅供参考:如果您使用我问题中的服务器名称和场景编写了一个完整的(可剪切粘贴)答案,我将期待对其进行投票,并可能选择它作为答案。谢谢。很高兴能给你正确的提示。但是根据我给你的提示,你可以自己回答这个问题。
load_module /usr/lib/nginx/modules/ngx_stream_module.so;
  
events {}

stream {    
  map $ssl_preread_server_name $targetBackend {
    svc01.example.com svc01.example.com:1443
    svc02.example.com svc02.example.com:2443
    svc03.example.com svc03.example.com:3443    
  }

  server {
    listen 8443;    
    # ==============================================================
    # http://nginx.org/en/docs/stream/ngx_stream_proxy_module.html
    # ==============================================================
    proxy_connect_timeout 10s;
    proxy_timeout 600s;
    resolver 8.8.8.8 1.1.1.1 8.8.4.4 1.0.0.1;
    proxy_pass $targetBackend;
    # ==============================================================

    # ==============================================================
    # http://nginx.org/en/docs/stream/ngx_stream_ssl_preread_module.html
    # ==============================================================
    ssl_preread on;
    # ==============================================================
  }
}