如何在 Ubuntu 18.04 LTS 上使用 Varnish HTTP 缓存加速 Apache如何在 Ubuntu 18.04 LTS 上使用 Varnish HTTP 缓存加速 Apache如何在 Ubuntu 18.04 LTS 上使用 Varnish HTTP 缓存加速 Apache如何在 Ubuntu 18.04 LTS 上使用 Varnish HTTP 缓存加速 Apache
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 Ubuntu 18.04 LTS 上使用 Varnish HTTP 缓存加速 Apache

Varnish 是一个专注于 HTTP 缓存的代理服务器。它被设计为 HTTP 加速器,可以充当您的 Web 服务器(Apache 或 Nginx)的反向代理。 Varnish 已被用于高知名度和高流量的网站,包括维基百科、卫报和纽约时报。

在本教程中,我们将向您展示如何安装和配置 Varnish HTTP 加速器作为 Apache Web 服务器的反向代理。真正的网络服务器 Apache 会运行在一个非标准的 HTTP 端口下(运行在 8080 端口)。 Varnish 将作为 HTTP 端口 80 上的反向代理运行。对于本指南,我们将使用 Ubuntu 18.04 LTS 服务器。

我们将要做什么

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

先决条件

  • Ubuntu 18.04 LTS
  • 根权限

第 1 步 - 安装 Apache Web 服务器

首先,安装 Apache Web 服务器。默认情况下,它在 Ubuntu 存储库中可用。

更新 Ubuntu 存储库,然后使用 apt 命令安装 Apache。

apt update
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 上,而 Varnish 将使用标准 HTTP 端口 80 .

要更改默认的 apache 端口,我们需要编辑 apache 配置 ports.conf 和 sites-available 目录下的所有虚拟主机配置。

转到 Apache 配置目录。

cd /etc/apache2

在 Apache 配置 ports.conf 和 sites-available 目录下的所有虚拟主机文件中将端口 80 替换为 8080。我们可以通过运行以下 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 步 - 安装 Varnish HTTP 加速器

在此步骤中,我们将从 Ubuntu 存储库安装 Varnish。对于本指南,我们将使用 Varnish 5.2。

使用以下 apt 命令安装清漆。

apt install -y varnish

安装完成后,启动 Varnish 并使其在系统启动时自动启动。

systemctl start varnish
systemctl enable varnish

Ubuntu 18.04系统上已经安装了varnish。

默认情况下,它在公共地址的端口 6081 和本地主机地址的 6082 端口下运行。使用下面的 netstat 命令检查它。

netstat -plntu

您将获得默认的清漆端口。

第 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 编辑器编辑清漆配置 default.vcl。

vim default.vcl

在第 16 行定义后端配置。我们设置的后端是 Apache,它在端口 8080 上运行。所以我们的 apache 设置的清漆配置应该如下:

backend default {
    .host = "127.0.0.1";
    .port = "8080";
}

保存并退出。

- 在端口 80 上运行 Varnish

接下来,我们需要更改默认清漆端口。 Varnish 默认端口为 6081 和 6082,我们需要将端口更改为 HTTP 端口 80(仅限公网地址)。

在 /etc/default 目录中编辑 varnish 参数配置。

cd /etc/default/
vim varnish

编辑 DAEMON_OPTS 行,将公共地址的默认端口 6081 更改为标准 HTTP 端口 80,如下所示。

DAEMON_OPTS="-a :80 \
             -T localhost:6082 \
             -f /etc/varnish/default.vcl \
             -S /etc/varnish/secret \
             -s malloc,256m"

保存并退出。

接下来,我们需要编辑清漆服务文件varnish.service。转到 /lib/systemd/system 目录并使用 vim 编辑服务文件。

cd /lib/systemd/system/
vim varnish.service

在 ExecStart 行,如下更改清漆启动命令。

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

现在检查清漆并确保它在 HTTP 端口 80 上运行。

netstat -plntu

所以 Varnish 现在在 HTTP 端口 80 下运行,作为 Apache Web 服务器的前端,它在端口 8080 上。

第 5 步 - 测试

使用 curl 命令进行测试。

curl -I hakase-labs.co

确保获得如下所示的 HTTP 标头。

从网络浏览器检查,我的测试服务器的 URL 是 http://hakase-labs.co/。在此处选择您的服务器 URL。

我们仍然可以获得 Apache 内容。

使用 varnishncsa 命令检查清漆日志。

varnishncsa

我们只从 Apache 访问日志中获取日志。

Apache Web 服务器的 Varnish 安装和配置已经完成。

参考

  • 清漆缓存
  • Apache HTTPD

©2015-2025 艾丽卡 support@alaica.com