有部分知道一个出名的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 服务器免受传入流量的影响。每个连接请求都由一个反向代理接收,它在连接到处理请求的服务器之前通过许多服务器转发它。
每个反向代理操作都包含三个主要阶段:
- 连接请求收集:在网络边缘,反向代理接受传入的请求。
- TCP 三向握手:在 TCP 三向握手后创建与反向代理的连接,并关闭第一个连接。
- 源服务器连接:反向代理使用虚构的 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
后端的配置就完成了。
下一步是设置 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 端口都可以从外部网络访问。配置成功。
1.本站内容仅供参考,不作为任何法律依据。用户在使用本站内容时,应自行判断其真实性、准确性和完整性,并承担相应风险。
2.本站部分内容来源于互联网,仅用于交流学习研究知识,若侵犯了您的合法权益,请及时邮件或站内私信与本站联系,我们将尽快予以处理。
3.本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
4.根据《计算机软件保护条例》第十七条规定“为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。”您需知晓本站所有内容资源均来源于网络,仅供用户交流学习与研究使用,版权归属原版权方所有,版权争议与本站无关,用户本人下载后不能用作商业或非法用途,需在24个小时之内从您的电脑中彻底删除上述内容,否则后果均由用户承担责任;如果您访问和下载此文件,表示您同意只将此文件用于参考、学习而非其他用途,否则一切后果请您自行承担,如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
5.本站是非经营性个人站点,所有软件信息均来自网络,所有资源仅供学习参考研究目的,并不贩卖软件,不存在任何商业目的及用途
暂无评论内容