Varnish Cache 是一个强大的开源 HTTP 和反向代理引擎,专为高负载动态网站和 API 设计。Varnish Cache 与 Squid 等其他 Web 加速器不同,最初是作为客户端缓存。它的增长主要集中在 HTTP 上,不像其他代理服务器增加了对 SMTP、FTP 等的支持

通常,Varnish Cache 位于 Web 服务器后面,可将网站速度提高大约 300-1000 倍。这是通过在内存中缓存请求的网站并在请求时提供它们而不构建相同的信息来实现的。更重要的是,当运行多个服务器时,Varnish Cache 可以充当负载平衡器。

Varnish Cache 具有以下特点:

  • DNS、随机、散列和基于客户端 IP 的导向器
  • HTTP 流传递和获取
  • Varnish 模块/VMOD 的插件支持
  • 支持 Edge Side Includes,包括将压缩的 ESI 片段拼接在一起
  • 支持Gzip压缩和解压
  • 支持持久存储,无需 LRU 驱逐
  • 清漆私有 CDN
  • Varnish API 和 Web 加速

本指南为您提供了有关如何在 Ubuntu 20.04/18.04 上为 Apache/Nginx 配置 Varnish Cache 7 的必要步骤。

入门

对于本指南,您将需要以下内容:

  • Ubuntu 20.04|18.04 安装在您的系统上。
  • 具有 sudo 访问权限的用户。

将您的系统包更新到最新的可用版本。

linuxmi@linuxmi:~/www.linuxmi.com$ sudo apt update && sudo apt upgrade

第 1 步 – 在 Ubuntu 20.04/18.04 上注册 Varnish Cache 7 存储库

我们将从注册 Varnish Cache 7 存储库开始,否则可能无法安装正确的软件包。

安装所需的包依赖项。

linuxmi@linuxmi:~/www.linuxmi.com$ sudo apt-get install debian-archive-keyring curl gnupg apt-transport-https

现在导入 GPG 密钥签名。

linuxmi@linuxmi:~/www.linuxmi.com$ curl -L https://packagecloud.io/varnishcache/varnish70/gpgkey | sudo apt-key add -

现在在 Ubuntu 20.04/18.04 上添加 Varnish Cache 7 存储库。

. /etc/os-release
sudo tee /etc/apt/sources.list.d/varnishcache_varnish70.list > /dev/null <<-EOF
deb https://packagecloud.io/varnishcache/varnish70/$ID/ $VERSION_CODENAME main
deb-src https://packagecloud.io/varnishcache/varnish70/$ID/ $VERSION_CODENAME main
EOF

一旦添加,更新您的包索引。

sudo apt-get update

第 2 步 – 在 Ubuntu 20.04|18.04 上安装 Varnish Cache 7

添加存储库后,使用以下命令安装 Varnish Cache 7。

linuxmi@linuxmi:~/www.linuxmi.com$ sudo apt-get install varnish

第 3 步 – 为 Varnish Cache 7 创建一个 Systemd 服务文件

为了能够像其他系统服务一样管理 Varnish Cache 7,我们将调整 systemd 服务如下。

linuxmi@linuxmi:~/www.linuxmi.com$ sudo cp /lib/systemd/system/varnish.service /etc/systemd/system/
linuxmi@linuxmi:~/www.linuxmi.com$ cat /etc/systemd/system/varnish.service

服务文件应如图所示。

[Unit]
Description=Varnish Cache, a high-performance HTTP accelerator
After=network-online.target nss-lookup.target

[Service]
Type=forking
KillMode=process

# Maximum number of open files (for ulimit -n)
LimitNOFILE=131072

# Locked shared memory - should suffice to lock the shared memory log
# (varnishd -l argument)
# Default log size is 80MB vsl + 1M vsm + header -> 82MB
# unit is bytes
LimitMEMLOCK=85983232

# Enable this to avoid "fork failed" on reload.
TasksMax=infinity

# Maximum size of the corefile.
LimitCORE=infinity

ExecStart=/usr/sbin/varnishd \
	  -a :6081 \
	  -a localhost:8443,PROXY \
	  -p feature=+http2 \
	  -f /etc/varnish/default.vcl \
	  -s malloc,256m
ExecReload=/usr/sbin/varnishreload

[Install]
WantedBy=multi-user.target

 

第 4 步 – 配置监听端口和缓存大小

从服务文件中,默认监听端口设置为6081,所以我们需要将此端口更改为 80 端口,缓存大小为 2GB。

/etc/systemd/system/varnish.service中,编辑以下部分并添加所需的详细信息。

重新加载系统守护程序。

linuxmi@linuxmi:~/www.linuxmi.com$ sudo systemctl daemon-reload

启动并启用 Varnish 缓存。

linuxmi@linuxmi:~/www.linuxmi.com$ sudo systemctl start varnish

检查服务的状态。

linuxmi@linuxmi:~/www.linuxmi.com$ systemctl status varnish

第 5 步 – 配置 Web 服务器以使用 Varnish

将 Varnish 缓存设置为侦听端口80,我们必须将 Web 服务器设置为侦听另一个端口,例如8080。为所需的 Web 服务器进行配置。

1.Nginx

确保已安装 Nginx Web 服务器。

linuxmi@linuxmi:~/www.linuxmi.com$ sudo apt install nginxsudo apt install nginx

现在编辑虚拟主机并使用以下命令将端口 80 替换为 8080:

linuxmi@linuxmi:~/www.linuxmi.com$ sudo find /etc/nginx/sites-enabled -name '*.conf' -exec sed -r -i 's/\blisten ([^:]+:)?80\b([^;]*);/listen \18080\2;/g' {} ';'

上面的脚本将编辑路径/etc/nginx/sites-enabled中的任何配置。您可能还需要更改默认 Nginx 站点以侦听端口 8080。

linuxmi@linuxmi:~/www.linuxmi.com$ sudo vim /etc/nginx/sites-enabled/default ...... server { listen 8080 default_server; #listen [::]:80 default_server; # SSL configuration #

2.Apache

安装 Apache Web 服务器。

linuxmi@linuxmi:~/www.linuxmi.com$ sudo apt install apache2

同样在这里,您需要编辑虚拟主机文件并将监听端口更改为 8080。

sudo find /etc/apache2 -name '*.conf' -exec sed -r -i 's/\bListen 80\b/Listen 8080/g; s/<VirtualHost ([^:]+):80>/<VirtualHost \1:8080>/g' {} ';'

第 6 步 – 配置 VCL 后端

上面所做的更改需要反映在 VLC 后端。默认情况下,VLC 后端配置为指向设置的端口 8080。该文件位于/etc/varnish/default.vcl下。

$ cat /etc/varnish/default.vcl
......
# Default backend definition. Set this to point to your content server.
backend default {
    .host = "127.0.0.1";
    .port = "8080";
}
......

现在重新启动服务。

##For Nginx
linuxmi@linuxmi:~/www.linuxmi.com$ sudo systemctl restart nginx varnish

##For Apache
linuxmi@linuxmi:~/www.linuxmi.com$ sudo systemctl restart apache2 varnish

第 7 步 – 验证 Varnish Cache 7 服务器

为了验证服务器是否正常工作,我们将使用下面的 cURL 命令。

curl -I server-ip

例如。

linuxmi@linuxmi:~/www.linuxmi.com$ curl -I 192.168.174.128

输出如下:

从输出中,您应该看到正在使用 Vanish Cache 的 Web 服务器。

结论

有了这个,我们可以肯定地得出结论,本指南关于如何在 Ubuntu 20.04/18.04 上为 Apache/Nginx 配置 Varnish Cache 7 是成功的。现在您应该能够使用 Varnish Cache 提高您的网页访问速度。

发表评论