如何在Ubuntu 16.04 LTS上使用VarnishHTTP缓存加速Apache

如何在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服务器。

我们将要做什么

  1. 安装Apache Web服务器
  2. 更改Apache默认端口
  3. 安装Varnish
  4. 配置Varnish
  5. 测试设置

先决条件

  • 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安装和配置已经完成。

参考

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏