如何在Ubuntu 16.04 LTS上使用VarnishHTTP缓存加速Apache
Varnish是一个专注于HTTP缓存的代理服务器。 它被设计成一个HTTP加速器,可以作为您的Web服务器(Apache或Nginx)的反向代理。 Varnish已被用于高调和高流量的网站,包括维基百科,“卫报”和“纽约时报”。
在本教程中,我们将向您展示如何安装和配置Varnish HTTP加速器作为Apache Web服务器的反向代理。 真正的Web服务器Apache将运行在非标准的HTTP端口(运行在端口8080上)。 而Varnish将作为HTTP端口80上的反向代理运行。对于本指南,我们将使用Ubuntu 16.04服务器。
我们将要做什么
- 安装Apache Web服务器
- 更改Apache默认端口
- 安装Varnish
- 配置Varnish
- 测试设置
先决条件
- Ubuntu 16.04
- 根特权
第1步 - 安装Apache Web服务器
首先,安装Apache Web服务器。 默认情况下,它在Ubuntu存储库中可用。
更新Ubuntu存储库,然后使用apt命令安装Apache。
sudo apt update
sudo apt install -y apache2
安装完成后,启动Apache服务并使其能够在系统引导时使用以下systemctl命令自动运行。
systemctl start apache2
systemctl enable apache2
Apache Web服务器已安装。
接下来,为了允许所有人访问Web服务器,我们必须在我们的防火墙规则上允许HTTP和HTTPS。 默认情况下,Ubuntu自带一个名为UFW的防火墙软件包。
使用以下ufw命令打开新的SSH,HTTP和HTTPS端口。
ufw allow ssh
ufw allow http
ufw allow https
现在启动防火墙服务并使其在系统启动时自动启动。
ufw enable
输入'y',然后按Enter键确认。
http,https和ssh的新端口已打开,可从网络外部访问。
如果要测试Apache Web服务器,可以使用netstat命令并确保apache在80端口下运行。
netstat -plntu
或者你可以使用下面的curl命令。
curl -I hakase-labs.co
你应该得到如下所示的结果。
第2步 - 更改Apache默认端口
在本教程中,我们将使用Apache作为后端服务器,并且不会在标准http端口80下运行。Apache web服务器将作为后端运行在端口8080上,标准http端口80将被“漆'。
要更改默认的apache端口,我们需要编辑apache配置'ports.conf'和'sites-available'目录下的所有虚拟主机配置。
转到Apache配置目录。
cd /etc/apache2
在Apache配置“ports.conf”中将“8080”替换为“8080”,并在“sites-available”目录下替换所有虚拟主机文件。 我们可以通过运行下面的sed命令来实现。
sed -i -e 's/80/8080/g' ports.conf
sed -i -e 's/80/8080/g' sites-available/*
接下来,测试Apache配置并确保没有错误,然后重新启动Apache服务。
apachectl configtest
systemctl restart apache2
现在Apache在http端口“8080”下运行,使用netstat命令检查它,如下所示。
netstat -plntu
确保你有如下结果。
所以你可以看到Apache Web服务器在端口“8080”上运行。
第3步 - 安装VarnishHTTP加速器
在这一步中,我们将从Ubuntu存储库安装Varnish。 而对于本指南,我们将使用Varnish 4。
使用以下apt命令安装Varnish。
sudo apt install -y varnish
安装完成后,启动Varnish并使其在系统引导时自动启动。
systemctl start varnish
systemctl enable varnish
Varnish已经安装在Ubuntu 16.04系统上。
默认情况下,它在公共地址的端口“6081”和本地主机地址的“6082”下运行。 使用下面的netstat命令检查它。
netstat -plntu
你会得到默认的Varnish端口。
第4步 - 配置Varnish作为Apache的反向代理
在这一步中,我们将在Apache Web服务器的前面配置Varnish。 Varnish将在http端口80下运行,并且每个来自客户端的请求都将由它处理,然后发送到端口8080上运行的Apache Web服务器。
- 后端配置
进入'varnish'配置目录,并备份默认文件'default.vcl'。
cd /etc/varnish/
cp default.vcl default.vcl.aseli
使用vim编辑器编辑varnish配置“default.vcl”。
vim default.vcl
在第16行定义'backend'配置。我们设置的后端是Apache,它是在端口8080上运行的。所以我们的apache设置的Varnish配置应该如下:
backend default {
.host = "127.0.0.1";
.port = "8080";
}
保存并退出。
- 在80号端口运行Varnish
接下来,我们需要更改默认的Varnish端口。 Varnish的默认端口是“6081”和“6082”,我们需要将端口更改为http端口80(仅用于公共地址)。
编辑'/ etc / default'目录中的Varnish参数配置。
cd /etc/default/
vim varnish
编辑'DAEMON_OPTS'行,用标准http端口'80'更改公共地址的默认端口'6081',如下所示。
DAEMON_OPTS="-a :80 \
-T localhost:6082 \
-f /etc/varnish/default.vcl \
-S /etc/varnish/secret \
-s malloc,256m"
保存并退出。
接下来,我们需要编辑Varnish服务文件“varnish.service”。 进入'/ lib / systemd / system'目录并使用vim编辑服务文件。
cd /lib/systemd/system/
vim varnish.service
在“ExecStart”行上,如下所示更改Varnish启动命令。
ExecStart = / usr / sbin / varnishd -j unix,user = vcache -F -a:80 -T localhost:6082 -f /etc/varnish/default.vcl -S / etc / varnish / secret -s malloc,256m
保存并退出。
重新加载systemd服务配置,然后重新启动Varnish。
systemctl daemon-reload
systemctl restart varnish
现在检查Varnish,并确保它在http端口80上运行。
netstat -plntu
所以Varnish现在在http端口80下运行,作为端口8080上的Apache web服务器的前端。
第5步 - 测试
使用curl命令进行测试。
curl -I hakase-labs.co
确保你得到了如下所示的http头。
从网络浏览器检查,我的测试服务器的URL是: http : //hakase-labs.co/ 。 在这里选择你的服务器URL。
而且我们仍然获得Apache内容。
使用'varnishncsa'命令检查Varnish日志。
varnishncsa
我们只从Apache访问日志中获取日志。
Apache web服务器的Varnish安装和配置已经完成。
参考