不使用 Ngnix、Pound、HAProxy 的 Apache Varnish 和 HTTPS

不使用 Ngnix、Pound、HAProxy 的 Apache Varnish 和 HTTPS

每当我搜索 Apache、HTTPS 和 Varnish 的实现时,我总能找到有关通过 Ngnix、Pound、HAProxy 终止 SSL 请求的教程,例如,https://www.smashingmagazine.com/2015/09/https-everywhere-with-nginx-varnish-apache(通过 ngnix),http://blog.ajnicholls.com/varnish-apache-and-https(通过 pound)并且 Varnish 的创建者建议使用 HAProxyhttps://varnish-cache.org/docs/trunk/phk/ssl_again.html

然而,今天我偶然发现了 David 的博客http://davidbu.ch/mann/blog/2015-03-20/varnish-and-https-apache.html他描述了仅使用 Apache 和 Varnish 的设置,并且没有运行测试,我只是想听听服务器专家对以下方面的意见:

  • 大卫的方法可行吗?
  • 他的方式是否会让更快地提供静态内容的整个想法变得毫无意义?

答案1

你可以将几乎任何可以实现 HTTP 终止的程序用于此目的。甚至是 Apache。大多数人使用 nginx 进行 SSL 终止(或 pound 或 hitch),因为它更轻量。

只是因为你拥有的软件较少,即 Apache (SSL) -> Varnish -> Apache。这并不意味着请求流会更快。它仍然必须经过 3 层并以 HTTP 数据包的形式传输。因此使用不会加快速度较少的软件。

使用 Apache 作为 SSL 终结器不会使提供静态内容的速度变得毫无意义。您可以将其配置为 Apache SSL 层将直接提供静态文件,而将动态内容转发到 Varnish 进行代理。

但总体而言,nginx 更适合提供静态文件服务。

答案2

我强烈推荐你一个解决方案

您应该让 varnish 监听端口 80、apache https 端口 403、HTTP 端口 8080。

您将安装一个服务 HAProxy 负载均衡器,监听来自客户端的所有请求。Haproxy 应将其重定向到端口 80。如果需要动态内容,Varnish 可以缓存或传递后端

相关内容