在没有 SSL 证书的情况下通过 Nginx 转发 HTTPS 流量

Forward HTTPS traffic thru Nginx without SSL certificate

我想使用 Nginx 公开我的 NodeJS 服务器监听端口 443。

我不想用 Nginx 管理 SSL 证书。我宁愿在 NodeJS 服务器上使用 https.createServerSNICallback 选项。

如何设置 nginx.conf 以支持此功能?

您正在寻找 ssl 直通。您将设置您的 nginx 以使用 TCP 负载平衡(即使您只有一台服务器,它仍然被认为是负载平衡)和 ssl 直通。 请注意,nginx 将无法访问任何内容,并且除了负载平衡能力之外,您将失去使用代理的几乎所有优势。 有关特定配置示例,请参阅 these instructions

您可以配置 nginx 以将加密流量传递到 node.js 服务器。

stream {
  server {
    listen     443;
    proxy_pass your.node.js:443;
  }
}

请注意,您将没有访问日志或任何其他访问数据的方式。