随着网站流量的增加,您经常会发现网站反复从磁盘提供相同的文件。这可能会导致一个问题,即服务器可能会达到其磁盘的性能极限,反复加载和向访问者提供相同的文件。媒体密集型网站和其他向浏览器返回大量静态内容的网站会加剧这一问题。这就是 Varnish 的作用所在。它充当 Web 服务器和浏览器之间的一层,其工作是将经常请求的项目缓存在内存中,以便更快地提供这些项目,同时减少磁盘负载。
在本教程中,我们将在 Apache Web 服务器上使用 Varnish。这些说明适用于运行 Debian Linux 或相关发行版(如 Ubuntu)的系统。我们假设您已经配置了运行 Apache 的服务器,并配置了一些虚拟主机。
如何使用 Apache设置 Varnish
首先,我们可以从默认存储库安装 Varnish。虽然这不是 Varnish 的最新版本,但你仍然可以在 Linux 发行版的整个生命周期内获得安全更新:
sudo apt-get update
sudo apt-get install varnish
安装后,Varnish 的配置由配置文件 /etc/default/varnish 处理,因此我们将首先编辑该文件以匹配我们的配置。在此示例中,我将使用 nano 来编辑文件,但你也可以使用你喜欢的文本编辑器。sudo
nano /etc/default/varnish
在此文件中列出了 4 个备选配置部分。找到以“## Alternative 2”开头的行。这是配置中默认选定的配置,但我们将编辑第一行,使其监听端口 80,这是默认的 Web 服务器端口。编辑后,您的配置应如下所示:
DAEMON_OPTS=”-a :80 \ -T localhost:6082 \ -f /etc/varnish/default.vcl \ -S /etc/varnish/secret \ -s malloc,256m”保存并退出此文件。 根据配置,Varnish 将从 /etc/varnish/default.vcl 文件中查找有关要执行的操作的其他信息,因此我们接下来将查看该文件以了解从哪里获取网站文件:sudo nano /etc/varnish/default.vcl我们不会更改此文件中的配置,因为默认设置适合我们的使用,这些设置位于“后端默认”部分。 它设置为查看 127.0.0.1(一个特殊的 IP,也称为 localhost,用于引用运行软件的同一台计算机)端口 8080,用于将为 Varnish 提供应提供的文件的 Web 服务器。您可以退出此文件而不进行任何更改,我们将使用该信息重新配置 Apache 以在该端口上侦听来自 Varnish 的请求。接下来,我们将编辑 /etc/apache2/ports.conf 文件以告诉它侦听端口 8080。sudo nano /etc/apache2/ports.conf将监听行更改为:Listen 8080然后保存并退出文件。现在您需要浏览所有 vitualhost 配置以告诉 Apache 侦听哪个端口。 例如,如果您使用默认配置,我们将执行以下操作:sudo nano /etc/apache2/sites-available/000-default.conf然后将“<VirtualHost *:80>”行更改为:<VirtualHost 127.0.0.1:8080 >接下来,保存并退出文件。 此更改意味着 Apache 将仅为来自 Varnish 的连接提供网站文件。如果您的服务器为多个虚拟主机提供服务,那么您需要对所有虚拟主机进行此更改。