在 Debian 和 Ubuntu 上安装适用于 Apache 的 Varnish Cache 5.2
Varnish Cache(也称为Varnish)是一款采用现代设计的开源、高性能 HTTP 加速器。它将缓存存储在内存中,确保网络服务器资源不会在客户端请求时一遍又一遍地创建相同的网页而浪费。
它可以配置为在 Web 服务器前面运行,以更快的方式提供页面服务,从而使网站加载速度更快。它支持负载平衡,包括后端健康检查、URL 重写、“死”后端的优雅处理,并为 ESI(Edge Side Includes)提供部分支持。
在我们有关 Varnish Cache 的系列文章中,我们展示了如何在 CentOS 7 系统上为 Nginx 设置 Varnish 和为 Apache Web 服务器设置 Varnish。
在本文中,我们将解释如何在 Debian 和 Ubuntu 系统上安装和配置 Varnish Cache 5.2 作为 Apache HTTP 服务器的前端。
要求:
- 安装了 LAMP Stack 的 Ubuntu 系统
- 安装了 LAMP Stack 的 Debian 系统
- 具有静态 IP 地址的 Debian/Ubuntu 系统
第 1 步:在 Debian 和 Ubuntu 上安装 Varnish Cache
1.幸运的是,有最新版本Varnish Cache 5(即撰写本文时的5.2)的预编译包,因此您可以需要在您的系统中添加官方 Varnish 存储库,如下所示。
curl -L https://packagecloud.io/varnishcache/varnish5/gpgkey | sudo apt-key add -
重要:如果您使用Debian,请安装debian-archive-keyring软件包以验证官方Debian存储库。
sudo apt-get install debian-archive-keyring
2. 之后,创建一个名为 /etc/apt/sources.list.d/varnishcache_varnish5.list 的文件,其中包含以下存储库配置。确保将 ubuntu
和 xenial
替换为您的 Linux 发行版和版本。
deb https://packagecloud.io/varnishcache/varnish5/ubuntu/ xenial main
deb-src https://packagecloud.io/varnishcache/varnish5/ubuntu/ xenial main
3. 接下来,使用以下命令更新软件包存储库并安装 varnish 缓存。
sudo apt update
sudo apt install varnish
4.安装Varnish Cache后,主要配置文件将安装在/etc/varnish/目录下。
- /etc/default/varnish – varnish 环境配置文件。
- /etc/varnish/default.vcl – 主要的varnish配置文件,它是使用vanish配置语言(VCL)编写的。
- /etc/varnish/secret – varnish 秘密文件。
要确认 Varnish 安装是否成功,请运行以下命令查看版本。
varnishd -V
步骤 2:配置 Apache 以使用 Varnish 缓存
5. 现在您需要配置 Apache 以使用 Varnish Cache。默认情况下,Apache 侦听端口 80,您需要将默认 Apache 端口更改为 8080,以使其在 Varnish 缓存后面运行。
因此,打开 Apache 端口配置文件 /etc/apache2/ports.conf 并找到 listen 80 行,然后将其更改为 listen 8080。
或者,只需运行 sed 命令将端口 80 更改为 8080,如下所示。
sudo sed -i "s/Listen 80/Listen 8080/" /etc/apache2/ports.conf
6.您还需要更改位于/etc/apache2/sites-available/中的虚拟主机文件。
sudo vi /etc/apache2/sites-available/000-default.conf
将端口号更改为 8080。
<VirtualHost *:8080>
#virtual host configs here
</VirtualHost>
7. 在使用 systemd 的系统上,/etc/default/varnish 环境配置文件已被弃用,不再被考虑。
您需要将文件 /lib/systemd/system/varnish.service 复制到 /etc/systemd/system/ 并对其进行一些更改。
sudo cp /lib/systemd/system/varnish.service /etc/systemd/system/
sudo vi /etc/systemd/system/varnish.service
您需要修改服务指令ExecStart,它定义了varnish守护进程运行时选项。设置 -a
标志的值,该标志定义 varnish 侦听的端口,从 6081 到 80。
8. 要对 varnish 服务单元文件进行上述更改,请运行以下 systemctl 命令:
sudo systemctl daemon-reload
9.然后,在/etc/varnish/default.vcl配置文件中将Apache配置为Varnish代理的后端服务器。
sudo vi /etc/varnish/default.vcl
使用后端部分,您可以定义内容服务器的主机 IP 和端口。以下是使用本地主机的默认后端配置(将其设置为指向您的实际内容服务器)。
backend default {
.host = "127.0.0.1";
.port = "8080";
}
10.执行完上述所有配置后,通过键入以下命令重新启动 Apache 和 Varnish 守护进程。
sudo systemctl restart apache
sudo systemctl start varnish
sudo systemctl enable varnish
sudo systemctl status varnish
第 3 步:在 Apache 上测试 Varnish 缓存
11.最后,测试 Varnish 缓存是否已启用并使用下面的 cURL 命令与 Apache HTTP 服务器一起查看 HTTP 标头。
curl -I http://localhost
就是这样!有关 Varnish 缓存的更多信息,请访问 – https://github.com/varnishcache/varnish-cache
在本教程中,我们解释了如何在 Debian 和 Ubuntu 系统上为 Apache HTTP 服务器设置 Varnish Cache 5.2。您可以通过下面的反馈与我们分享任何想法或疑问。