Varnish Cache+Nginx反向代理安装配置图文教程

有部分知道一个出名的HTTP缓存的代理服务器是Varnish,它是一个HTTP加速器,可以作为Apache或Nginx Web服务器的反向代理。因为流量大、知名度高的网站都采用了Varnish。在本文中,搬主题将讨论 Varnish缓存Nginx反向代理以及如何设置它的图文教程。

什么是Varnish Cache?

对于基于 Web 的公司,缓存通常是最关键的软件部分。Varnish Cache是一个强大的、开源的HTTP引擎/反向 HTTP 代理,正如其名称所表示的那样:缓存(或存储)访问者第一次查看网页的副本。这可以将网站的速度提高 1000%。Varnish 向您的服务器发出单个请求以缓存页面,之后它会处理对同一页面的任何后续请求。这导致了令人难以置信的快速内容交付和对后端服务器资源的更少需求。

  • Varnish 的核心竞争力是速度和性能。
  • 节省服务器基础设施。
  • 可扩展性——无论访问者或请求的数量如何,Varnish都能让您的网站满足需求。
  • 中断保护:即使您的服务器崩溃, Varnish 也会继续提供缓存信息。
  • 灵活性:Varnish 配置语言 (VCL) 允许创建专门的解决方案、规则和模块。
  • 增强的用户体验

Varnish Cache是如何工作的?

在它们到达您的Web服务器的后端之前,Varnish会处理所有传入的请求。它的缓存处理所有网络流量,默认情况下每两分钟刷新一次。

Varnish 会将请求路由到 Web 服务器的后端并缓存结果,正如我们刚刚在通用反向代理段落中看到的,如果请求没有被缓存。

一旦请求被缓存,它们就会被放入内存中,然后可以快速检索并发送给客户。Varnish 使用 VCL 语言来表达设置、缓存策略和其他规则(Varnish 配置语言)。

您可以使用该语言及其变体以不同方式响应每个请求。例如,您可以将某些请求定向到特定后端或指示 Varnish 根据传入请求的特征或其结果采取不同的操作。

即使 Web 服务器不可用,缓存的材料仍然可以提供,因为有一个称为后端轮询的内置功能,这是另一个惊人的 Varnish 功能。如果 Varnish 检测到停机时间,它将继续在称为宽限期的时间范围内提供缓存的内容。后端轮询以您可以灵活设置的频率查询服务器。

什么是Nginx?

Nginx是可用于视频流、缓存、反向代理、Web 服务和其他功能的开源软件。目前很多站点都用其做网站服务器软件,它最初是作为一个为实现最高速度和可靠性而构建的 Web 服务器。除了作为 HTTP 服务器之外,Nginx还可以作为 HTTP 服务器、电子邮件代理服务器(IMAP、POP3 和 SMTP)、反向代理和 HTTP、TCP 和 UDP 服务器的负载平衡器运行。

什么是反向代理?

反向代理的主要功能是保护 Web 服务器免受传入流量的影响。每个连接请求都由一个反向代理接收,它在连接到处理请求的服务器之前通过许多服务器转发它。

每个反向代理操作都包含三个主要阶段:

  1. 连接请求收集:在网络边缘,反向代理接受传入的请求。
  2. TCP 三向握手:在 TCP 三向握手后创建与反向代理的连接,并关闭第一个连接。
  3. 源服务器连接:反向代理使用虚构的 IP 地址将源服务器连接到客户端请求。

用户永远无法直接连接到源服务器,因为所有 Web 浏览器与 Web 应用程序的连接始终是通过反向代理进行的。

你如何设置 Varnish 缓存 Nginx反向代理?

在你的服务器上安装 Nginx

首先,我们需要使用以下apt命令从 Ubuntu 存储库安装 Nginx

sudo apt update
apt install nginx -y

安装完成后,我们需要启动并启用 Nginx 每次在系统启动时使用systemctl命令启动

systemctl start nginx
systemctl enable nginx

在端口88上配置 Nginx

我们将设置 Nginx 使用非常规的 HTTP 端口 8080 进行操作。为此,我们必须修改位于“sites-available”目录中的虚拟主机文件。

nano /etc/nginx/sites-available/default

将“listen”行值更改为8080。保存并退出。

现在通过测试Nginx设置来检查错误。之后重新启动服务。

nginx -t
systemctl restart nginx

使用再次检查Nginx netstat,并确认它在非常规的 HTTP 端口 8080 上运行。

netstat -plntu

上面表示已经安装好了,Nginx Web 服务器当前正在使用 8080 端口。

在 Ubuntu 上安装Varnish

我们必须使用apt命令安装Varnish

sudo apt install varnish -y

使用systemctl下面列出的命令,启动 varnish 并将其设置为在系统启动时自动启动。

systemctl start varnish
systemctl enable varnish

默认情况下,varnish将使用端口6082进行管理Web界面,使用端口6081进行公共访问。netstat确保使用命令检查列出了某些端口。

netstat -plntu

Varnish HTTP 加速器已安装成功

将Varnish配置为Nginx的反向代理

作为 Nginx Web 服务器的反向代理,将使用 Varnish。Nginx Web 服务器将在 HTTP 端口 8080 上运行,而 Varnish 将在 HTTP 端口 80 上运行。

在这个阶段,我们将为 Nginx 设置 Varnish,识别后端服务器,并修改Varnish,使其使用 HTTP 端口 80 作为其默认端口。

立即进入 varnish 配置目录编辑“default.vcl”文件。并确保主机为 127.0.0.1,端口为 8080

nano /etc/varnish/default.vcl

图片[1]-Varnish Cache+Nginx反向代理安装配置图文教程-千百度社区

后端的配置就完成了。

下一步是设置 Varnish 以使用 HTTP 端口 80。通过转到“/etc/default”目录中的“varnish”目录来编辑 varnish 配置文件。

nano /etc/default/varnish

确保您的默认端口是 6081,HTTP 端口是 80

现在应该编辑“/lib/systemd/system”目录中的Varnish服务文件。通过转到 systemd 系统目录来编辑 varnish.service 文件。

cd /lib/systemd/system
nano varnish.service

将 HTTP 端口 80 替换为 ‘ExecStart’ 行上的Varnish端口 6081。

现在重新加载systemd配置并重新启动Varnish

systemctl daemon-reload
systemctl restart varnish

netstat使用命令检查Varnish

netstat -plntu

varnish 配置为 Nginx 的反向代理已完成

配置UFW防火墙

Ubuntu 操作系统上的默认可读防火墙称为“UFW”。如果您还没有软件包,请使用下面显示的 apt 命令安装它们。

sudo apt install ufw

我们将打开防火墙并打开新的 SSH、HTTP 和 HTTPS 端口。

下面列出的 ufw 命令。

ufw allow ssh
ufw allow http
ufw allow https

现在打开防火墙并使其始终在启动时启动。

ufw enable

现在 UFW 防火墙处于活动状态,HTTP 和 HTTPS 端口都可以从外部网络访问。配置成功。

千百度
© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容