【问题标题】:Medium sized website: Transition to HTTPS, Apache and reverse proxy中型网站:过渡到 HTTPS、Apache 和反向代理
【发布时间】:2016-05-25 10:27:39
【问题描述】:

我有一个名为 algebra.com 的中型网站。截至今天,它在美国的 Quantcast 评级中排名第 900 位。

在其使用高峰期,在工作日晚上,它每秒处理超过 120-150 个对象查询。几乎所有的对象,包括图像,都是动态生成的。

它每月有 750 万次页面浏览量。

它是 Ubuntu 上 Apache2 的服务器,并辅以 Perlbal 反向代理,这有助于减少正在使用的 apache 插槽/子进程的数量。

我花费了大量时间来研究 HTTP 的性能,结果是一个运行良好的网站。

现在需要过渡到 HTTPS(这里完全有道理,因为我有登录和注册用户),我想确保我不会以灾难告终。

但是,我担心我最终可能会遇到性能噩梦,因为 HTTPS 会话持续时间更长,而且我不确定反向代理是否能像使用 HTTP 一样提供帮助。

其次,我想确保我有足够的 CPU 容量来处理 HTTPS 流量。

同样,这不是一个每秒点击几下的小型网站,我们说的是每秒点击 100 多次。

此外,我在一台服务器上运行多个站点。

例如,我是否可以有一个反向代理,它支持一个 IP (SNI) 上的多个虚拟域,并将 HTTPS 流量转换为 HTTP,这样我就不必加密两次(一次由 apache 进行代理,并且一次由客户端浏览器的代理)?

让多个网站(有些是大型网站)由 HTTP 和 HTTPS 混合提供服务的“最佳实践方法”是什么?

也许我可以继续在端口 80 上运行 perlbal,并在端口 443 上运行 nginx? nginx可以配置为多个HTTPS站点的反向代理吗?

【问题讨论】:

    标签: apache nginx https reverse-proxy


    【解决方案1】:

    你确实需要对此进行负载测试,除此之外没有人能给出明确的答案。

    不过,我会提供以下建议:

    首先堆栈溢出实际上是针对编程问题。这个问题可能属于姊妹网站 www.serverfault.com。

    恕我直言,除非您对大量流量(例如视频流)进行加密,否则 Https 处理对于现代硬件来说不是问题。特别是通过适当的缓存和其他性能调整,我认为您已经根据您在问题中所说的内容完成了这些操作。但是没有处理您的流量站点,因此它可能会成为一个问题。

    在初始连接上协商 https 会话时,客户端会受到一点影响。这大约是几百毫秒,只会在每次会话的初始连接时发生,大多数人不太可能注意到,但它确实存在。

    您可以做几件事来优化 https,包括选择快速密码、实现会话恢复(这有两种方法 - 这在负载平衡的网站上可能会变得复杂)。 Ssllabs runs an excellent https tester 检查您的设置,Mozilla has some great documentation and advice,或者您可以检查 my own blog post on this

    至于您是否在端点(代理/负载平衡)终止 https,这在很大程度上取决于您。是的,如果您再次重新加密到 https 以连接到您的实际服务器,则会对性能造成影响。大多数代理服务器还允许您仅将 https 流量传递到您的主服务器,因此您只需解密一次,但随后您会从网络服务器日志中丢失原始 IP 地址,这可能很有用。这还取决于您是否直接访问您的网络服务器?例如,在我的公司,我们不会对内部流量进行负载平衡,因此我们也在 Web 服务器上启用了 https,并让 LoadBalancer 重新加密以连接到该服务器,以便我们可以通过 https 查看网站。

    其他需要注意的事项:

    您可能会在迁移过程中看到 SEO 命中。确保您重定向所有流量,告诉 Google Search Console 您的首选网站(http 或 https),更新您的站点地图和所有链接(或使它们相对)。

    您需要注意不安全的内容问题。所有资源(例如 css、javascript 和图像)都需要通过 https 提供,否则您将收到浏览器警告并拒绝使用这些资源。 HSTS 可以为browsers that support HSTS 提供您自己域上的链接,CSP 也可以提供帮助(报告它们或自动升级它们 - for browsers that support upgrade insecure requests)。

    迁移到仅使用 https 确实需要一些努力,但它是一次性的,之后它使您的网站比尝试维护同一网站的两个版本更容易管理。网络越来越多地转向 https - 如果您已经(或计划)登录区域,那么您别无选择,因为您应该 100% 不使用 http。谷歌略微提升了 https 网站的排名(虽然它显然很小,所以不应该是你移动的主要原因),甚至谈到积极地将 http 网站显示为不安全。恕我直言,最好走在曲线前面并立即采取行动。

    希望有用。

    【讨论】:

      猜你喜欢
      • 2017-07-10
      • 1970-01-01
      • 1970-01-01
      • 2013-04-02
      • 2015-07-09
      • 1970-01-01
      • 2020-11-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多