更新时间:2022-12-20 11:02:31浏览次数:535+次
本文介绍在Ubuntu 22.04、20.04、18.04操作系统上安装和配置Varnish Cache 7的详细步骤。
简介
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,包括将压缩的ESI片段缝合在一起。
支持Gzip压缩和解压缩。
支持持久存储,无需LRU驱逐。
Varnish专用CDN。
Varnish API和Web加速。
本文为您提供了如何在Ubuntu 22.04、20.04、18.04上为Apache/Nginx配置Varnish Cache 7所需的步骤。建议在开始之前更新一下系统。
请切换到具有sudo访问权限的用户。将系统软件包更新到最新可用版本:
sudo apt update && sudo apt -y full-upgrade
如果需要,请执行重新启动:
[ -f /var/run/reboot-required ] && sudo reboot -f
安装和配置Varnish Cache 7的详细步骤
步骤1:在Ubuntu 22.04上注册Varnish Cache 7 repo
我们将首先注册Varnish Cache 7存储库,否则可能无法安装正确的软件包。
安装所需的包依赖项:
sudo apt install debian-archive-keyring curl gnupg apt-transport-https -y
现在导入GPG密钥签名:
curl -fsSL https://packagecloud.io/varnishcache/varnish70/gpgkey|sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/varnish.gpg
做完上面操作,现在就在Ubuntu 22.04、20.04、18.04上添加Varnish Cache 7存储库。
1、Ubuntu 20.04/18.04
. /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
2、Ubuntu 22.04
在Ubuntu 22.04的官方存储库发布之前,使用20.04存储库:
sudo tee /etc/apt/sources.list.d/varnishcache_varnish70.list > /dev/null <<-EOF
deb https://packagecloud.io/varnishcache/varnish70/ubuntu/ focal main
deb-src https://packagecloud.io/varnishcache/varnish70/ubuntu/ focal main
EOF
添加后,更新包索引:
sudo apt update
步骤2:在Ubuntu 22.04上安装Varnish Cache 7
添加存储库后,使用以下命令安装Varnish Cache 7:
sudo apt install varnish
依赖关系树:
Reading state information... Done
The following additional packages will be installed:
binutils binutils-common binutils-x86-64-linux-gnu cpp cpp-9 gcc gcc-9
gcc-9-base libasan5 libatomic1 libbinutils libc-dev-bin libc6-dev
libcc1-0 libcrypt-dev libctf-nobfd0 libctf0 libgcc-9-dev libgomp1
libisl22 libitm1 libjemalloc2 liblsan0 libmpc3 libquadmath0 libtsan0
libubsan1 linux-libc-dev manpages-dev
Suggested packages:
binutils-doc cpp-doc gcc-9-locales gcc-multilib make autoconf automake
libtool flex bison gdb gcc-doc gcc-9-multilib gcc-9-doc glibc-doc
varnish-dev
The following NEW packages will be installed:
binutils binutils-common binutils-x86-64-linux-gnu cpp cpp-9 gcc gcc-9
gcc-9-base libasan5 libatomic1 libbinutils libc-dev-bin libc6-dev
libcc1-0 libcrypt-dev libctf-nobfd0 libctf0 libgcc-9-dev libgomp1
libisl22 libitm1 libjemalloc2 liblsan0 libmpc3 libquadmath0 libtsan0
libubsan1 linux-libc-dev manpages-dev varnish
0 upgraded, 30 newly installed, 0 to remove and 73 not upgraded.
Need to get 35.5 MB of archives.
After this operation, 154 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
步骤3:为Varnish Cache 7创建Systemd服务文件
为了能够像其他系统服务一样管理Varnish Cache 7,我们将如下调整systemd服务:
sudo cp /lib/systemd/system/varnish.service /etc/systemd/system/
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中,编辑下面的部分并添加所需的详细信息:
$ sudo vim /etc/systemd/system/varnish.service
ExecStart=/usr/sbin/varnishd \
-a :80 \
-a localhost:8443,PROXY \
-p feature=+http2 \
-f /etc/varnish/default.vcl \
-s malloc,2g
重新加载系统守护程序:
sudo systemctl daemon-reload
启动并启用Varnish缓存:
sudo systemctl start varnish
检查服务状态:
$ systemctl status varnish
步骤5:配置web服务器以使用Varnish
当Varnish缓存设置为侦听端口80时,我们必须将Web服务器设置为侦听另一个端口,例如8080。为所需的Web服务器进行配置。
1、Nginx
确保已安装Nginx web服务器:
sudo apt install nginx
现在编辑虚拟主机并使用以下命令将端口80替换为8080:
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:
$ sudo vim /etc/nginx/sites-enabled/default
server {
listen 8080 default_server;
#listen [::]:80 default_server;
# SSL configuration
#
更改后重新启动nginx服务:
sudo systemctl restart nginx
2、Apache
安装了Apache Web服务器:
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' {} ';'
更改后重新启动Apache web服务器:
sudo systemctl restart apache2
步骤6:配置VCL后端
上述更改需要反映在VLC后端。默认情况下,VLC后端配置为指向设置端口8080。此文件位于/etc/varnish/default.vcl下:
$ sudo vim /etc/varnish/default.vcl
# Default backend definition. Set this to point to your content server.
backend default {
.host = "127.0.0.1";
.port = "8080";
}
现在重新启动服务:
##对于Nginx
sudo systemctl restart nginx varnish
##对于Apache
sudo systemctl restart apache2 varnish
步骤7:验证Varnish Cache 7服务器
为了验证ig服务器是否正常工作,我们将使用下面的cURL命令:
curl -I server-ip
例如:
curl -I 192.168.205.11
输出如下图所示:
从输出中,您应该可以看到web服务器与Vanish Cache一起使用。
至此,在Ubuntu 22.04、20.04、18.04系统上为Apache/Nginx配置Varnish Cache 7的操作全部完成。
相关资讯