【问题标题】:Why web servers use a reverse proxy for SSL?为什么 Web 服务器对 SSL 使用反向代理?
【发布时间】:2021-02-20 15:50:35
【问题描述】:

为什么网络服务器通常使用 SSL 的反向代理?我了解反向代理的概念及其在多台服务器之间平衡负载的有用性,但不了解实现 SSL。 Web 服务器不能简单地为 HTTP 和 HTTPS(即带有 SSL 的 HTTP)在不同的端口创建侦听套接字吗?

【问题讨论】:

  • 这可能更适合 ServerFault 而不是这里。
  • 将所有 SSL 证书等放在一个地方要简单得多,例如 Tomcat 并没有像 Apache HTTPD 那样让您对 SSL 进行几乎所有的控制,以命名我自己的配置。

标签: ssl reverse-proxy


【解决方案1】:

我经常使用 Nginx 作为反向代理。

Nginx 用作 HTTPS 前端。它托管证书和私钥,进行 HTTP->HTTPS 重定向,在响应中添加必要的标头并封装 Intranet。

实际的业务逻辑由内网中各种服务器的 Zoo 运行,这些服务器通过 HTTP 提供服务 - nodejs、go、php。它们在不同的机器上运行。其中一些是旧版,不了解 TLS,有些是较新的旧版,只能使用 TLS 1.1。

使用 Nginx 作为 HTTPS 前端的原因是:

  1. 我不信任第三方的 HTTPS 实现。
  2. 我不想弄乱各种实现附加证书所需的所有花里胡哨。
  3. 我不想为已过时的 TLS 版本/密码配置或完全错过 HTTPS 的旧版或第三方软件而烦恼。
  4. 我喜欢 Certbot 在 Nginx 中自动处理我的证书的方式。
  5. 我喜欢 Nginx 的简洁功能,这是自定义服务器都不提供的,例如 HTTP 到 HTTPS 重定向、负载平衡、快速静态页面等等。

【讨论】:

  • 如果您已经有一个用于缓存/负载平衡的代理,我可以看到为 SSL 使用反向代理的好处,但我最初的问题是关于一个更简单的场景:为什么要为 SSL 使用反向代理,如果您只有一台没有缓存/负载平衡的 Web 服务器(例如 Apache)?
猜你喜欢
  • 2018-08-23
  • 2016-07-28
  • 2013-05-22
  • 1970-01-01
  • 2020-04-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多