Varnish开源HTTP反向代理缓存服务器

news2024/11/17 9:49:53

第三阶段基础

时  间:2023年6月13日

参加人:全班人员

内  容:

Varnish

目录

Varnish

端口号:TCP/6081  TCP/6082

配置文件:/etc/varnish/default.vcl

安装部署:

测试功能:


Varnish

Varnish是一个高性能的开源HTTP反向代理缓存服务器,它可以加速动态内容的交付并降低服务器的负载。

Varnish常被用作HTTP加速器负载均衡器,通过缓存静态文件、动态内容甚至整个页面来减少请求的数量和服务器响应时间。

它支持各种缓存规则,可以针对不同的用户或请求类型缓存不同的信息,并提供丰富的管理工具和API以便于配置和监控。

Varnish在Web性能优化高可用性方面发挥着重要作用,被广泛应用于许多高流量的网站和Web应用程序中。

端口号:TCP/6081  TCP/6082

配置文件:/etc/varnish/default.vcl

安装部署:

以下是在CentOS 7上安装和部署Varnish的步骤:

1. 添加Varnish的yum源

首先需要添加Varnish的yum源,可以在Varnish官网上找到CentOS 7对应的源,例如:

sudo curl -L

https://packagecloud.io/varnishcache/varnish41/gpgkey | sudo rpm --import

sudo curl -L -o /etc/yum.repos.d/varnish.repo

https://packagecloud.io/varnishcache/varnish41/el/7/$basearch.repo

2. 安装Varnish

运行以下命令以安装Varnish:

sudo yum install varnish

3. 配置Varnish

Varnish的配置文件位于/etc/varnish/default.vcl。如前所述,你可以根据需要在其中定义缓存规则、后端响应规则和传输规则。以下是一个示例:

backend default {

    .host = "127.0.0.1";

    .port = "8080";

}

sub vcl_recv {

    # Define cache rules here

}

sub vcl_backend_response {

    # Define backend response rules here

}  

sub vcl_deliver {

    # Define delivery rules here

}

这个示例配置了Varnish使用本地主机的8080端口作为后端,并留出了三个子例程用于定义缓存规则、后端响应规则和传输规则。你可以根据需要更改这些规则。

4. 启动Varnish

使用以下命令启动Varnish:

sudo systemctl start varnish

5. 配置Varnish为自启动

使用以下命令将Varnish配置为开机自启动:

sudo systemctl enable varnish

以上是在CentOS 7上安装和部署Varnish的步骤。在实际操作中,如果遇到任何问题,你可以检查/var/log/varnish/varnishlog日志文件以获取更多信息。

测试功能:

以下是一个简单的Varnish测试过程:

1. 启动Varnish

在开始测试之前,请确保Varnish已成功安装并启动。你可以使用以下命令启动Varnish:

sudo systemctl start varnish

2. 配置测试站点

为了测试Varnish的效果,我们可以在本地搭建一个简单的测试站点。例如,在Apache服务器上搭建一个简单的HTML页面。你可以使用以下命令安装Apache:

sudo yum install httpd

安装完成后,将以下内容保存到

/etc/httpd/conf.d/varnish-test.conf文件中:

Listen 8080

<VirtualHost *:8080>

    DocumentRoot /var/www/html/varnish-test

    ErrorLog logs/varnish-test-error_log

    CustomLog logs/varnish-test-access_log combined

</VirtualHost>

创建/var/www/html/varnish-test目录,并在其中创建一个名为index.html的文件并写入以下内容:

<!DOCTYPE html>

<html>

<head>

    <title>Varnish Test</title>

</head>

<body>

    <h1>Hello, Varnish!</h1>

</body>

</html>

保存并关闭文件。然后,启动Apache服务器:

sudo systemctl start httpd

这样,我们的测试站点就搭建好了。

3. 测试Varnish

现在,我们可以使用命令行工具curl来测试Varnish了。curl是一个用于传输数据的常用工具,可以模拟HTTP请求。

首先,运行以下命令来禁用Apache的本地缓存:

echo "CacheDisable on" | sudo tee

/var/www/html/varnish-test/.htaccess

然后,使用curl发送测试请求:

curl -I http://localhost:6081/

例:curl -I http://192.168.1.107:6081/

你会看到一个HTTP响应,其中包含有关请求和响应的各种信息。在响应头信息中,你将看到类似以下内容:

X-Varnish: 32768

Age: 0

这表示请求已由Varnish服务器处理,并返回一个带有X-Varnish头的HTTP响应,指示Varnish的处理结果。这里的Age值为0,说明缓存并没有命中。

再次重复发送相同的请求,你会看到Age值增加了,说明缓存已命中,响应来自Varnish缓存:

X-Varnish: 32768

Age: 10

这就是一个简单的Varnish测试过程。你可以在缓存规则中作进一步调整,以验证Varnish的效果和提高Web应用程序的性能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/642188.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

6月14日晚 19:00公开课直播 | 入门必看:40min 掌握低代码基础功能

大家好&#xff0c;新一期「ONEIN 公开课」要和大家见面啦&#xff01; Onein 公开课介绍 Onein 公开课&#xff0c;是万应低代码开设的直播课堂&#xff0c;专注低代码领域&#xff0c;希望帮助每一位用户更好的使用万应低代码。 随着低代码的兴起&#xff0c;低代码这一名词…

从小白到大神之路之学习运维第39天---第三阶段---MongoDB非关系型数据库(概述、安装、设置管理员、简单操作、配置文件说明,备份和还原)

第三阶段基础 时 间&#xff1a;2023年6月13日 参加人&#xff1a;全班人员 内 容&#xff1a; 目录 MongoDB概述 端口号&#xff1a;TCP/27017 配置文件&#xff1a;/etc/mongod.conf MongoDb安装部署 MongoDB设置密码 MongoDB操作命令与说明 配置文件说明 备份操作 1. 热备…

chatgpt赋能python:Python怎么居中对齐

Python怎么居中对齐 在Python中&#xff0c;输出对齐是一项基本功能。当我们想要打印表格或美化输出时&#xff0c;居中对齐是一个常见的要求。本文将介绍如何使用Python进行居中对齐&#xff0c;以及一些相关的技术和应用。 如何居中对齐&#xff1f; 要在Python中实现居中…

TypeScript知识汇总

一、ts简介 1、什么是ts 2、ts增加了什么 二、TypeScript开发环境搭建 注&#xff1a;如果npm i运行报错&#xff0c;需要以管理员身份运行一次&#xff0c;以上主要就是tsc xxx.ts 三、ts的基本类型——ts相当于是给js可以指定类型 //number、string、boolean等常用类型&am…

[游戏开发][Unreal]项目启动

新建项目时会有 [项目名].uproject文件&#xff0c;鼠标右键该文件点击Switch Unreal Engine version 如果你的 [项目名].uproject文件是个纯白的图标&#xff0c;证明没有关联到Unreal&#xff0c;该怎么办呢 使用搜索工具搜UnrealVersionSelector.exe 或者直接去你的UE5安装目…

在华为外包待了3年,我秃了,但没变强...

我25岁&#xff0c;中级测试&#xff0c;外包&#xff0c;薪资13.5k&#xff0c;人在上海。内卷什么的就不说了&#xff0c;而且人在外包那些高级精英年薪大几十的咱也接触不到&#xff0c;就说说外包吧。 假设以我为界限&#xff0c;25岁一线城市13.5k&#xff0c;那22-24大部…

J.A.Woollam光谱型椭偏仪电源维修M-2000XI

M-2000系列光谱椭圆仪是为满足薄膜表征的需求而设计的。RCE技术结合了旋转补偿器椭圆仪和CCD检测&#xff0c;在几分之一秒内收集整个光谱&#xff08;数百个波长&#xff09;&#xff0c;并有多种配置。擅长于从原位监测和过程控制到大面积均匀性绘图和通用薄膜表征的椭偏仪。…

mac m1(arm)安装brew(Homebrew)

安装 使用国内脚本安装 /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"安装完成后使用brew安装tcping试试 brew install tcping发现报错 Error: Cannot install in Homebrew on ARM processor in Intel default prefi…

应急指挥调度系统之指挥中心是由什么构成的

应急指挥调度系统是应急管理的重要组成部分&#xff0c;而指挥中心则是应急指挥系统的控制中枢&#xff0c;可以说是应急指挥调度系统体系中的大脑&#xff0c;应急管理中的所有应急指令都会从指挥中心发出&#xff0c;作为应急指挥系统的控制中枢&#xff0c;应急指挥调度系统…

5款国产优质软件,满足工作效率提升需求,你值得拥有

不少人对国产软件的印象&#xff0c;还停留在各种弹窗、各种捆绑&#xff0c;想要提升工作效率&#xff0c;只能使用国外的软件。今天给大家分享5款国产优质软件&#xff0c;不仅没有各种弹窗、捆绑&#xff0c;还能满足工作效率提升需求。 亿图脑图MindMaster MindMaster是一款…

聊聊如何利用服务定位器模式按需返回我们需要的服务实例

前言 什么是服务定位器模式 服务定位器是一个了解如何提供各种应用所需的服务&#xff08;或组件&#xff09;的对象。在服务定位器中&#xff0c;每个服务&#xff08;或组件&#xff09;都只有一个单独的实例&#xff0c;并通过ID 唯一地标识。 用这个 ID 就能从服务定位器中…

JVM 调优分析 如何进行JVM调优

文章目录 1.为什么需要进行JVM调优&#xff1f;2.什么情况下可能需要JVM调优3.JVM调优参数4.JVM调优参数设置参考5.JVM内部结构1. 类加载器&#xff08;Class Loader&#xff09;2. 运行时数据区&#xff08;Runtime Data Area&#xff09;3. 垃圾收集器&#xff08;Garbage Co…

css常见布局方式

css常见布局方式 0、前言1、两栏布局1.1 浮动 margin1.2 浮动 BFC&#xff08;overflow: hidden&#xff09;1.3 定位 margin-left1.4 给父容器设置flex布局&#xff0c;左盒子固定宽度&#xff0c;然后给右子元素设置 flex: 1。1.5 table布局 2、三栏布局2.1 float布局2.2 …

小红书数据分析:流量手到擒来,热点创作大解密!

年中大促618接近尾声&#xff0c;对小红书来说&#xff0c;这次的“反向”营销博得满堂彩。 为了呼吁大家不要冲动消费&#xff0c;线下举办了“反冲动俱乐部”活动&#xff0c;以“365天无理由退货”、“退货的商品可兑换成小红书现金券”等玩法在一众促销信息中呈现差异化内…

如何从Prometheus单独提取个别数据持久化到InfluxDB

背景 首先解释一个问题&#xff0c;为什么会选择让InfluxDB来持久化Prometheus的数据&#xff0c;直接存在Prometheus中不行吗&#xff1f;下面是Claude的回答&#xff0c;我来总结一下&#xff1a; 1&#xff09;InfluxDB提供了更强大的Flux查询语言&#xff0c;比如提供了复…

长鑫存储面试(部分)

你平时写代码时&#xff0c;如何保证代码可靠、可复用、可扩展、可维护&#xff1f;有总结经验吗&#xff0c;请举例说明。参考答案 by newBing&#xff1a; 编写文档&#xff1a;编写文档是保证代码可维护性的重要手段。文档应该包括代码的设计思路、实现细节、使用方法等。 遵…

NeRF系列(2):NeRF in the wild : Neural Radiance Fields for Unconstrained Photo Collections论文解读与公式推导

NeRF in the Wild: Neural Radiance Fields for Unconstrained Photo Collections 论文&#xff1a;https://openaccess.thecvf.com/content/CVPR2021/papers/Martin-Brualla_NeRF_in_the_Wild_Neural_Radiance_Fields_for_Unconstrained_Photo_CVPR_2021_paper.pdfhttps://op…

pyspark安装教程

pyspark安装教程 一、Windows下配置pyspark环境1.1 JDK下载安装1.2 Scala下载安装1.3 spark下载安装1.4 Hadoop下载安装1.5 pyspark下载安装 二、pyspark原理简介 一、Windows下配置pyspark环境 在python中使用pyspark并不是单纯的导入pyspark包就可以实现的&#xff0c;而是需…

从0到字节跳动30W年薪,我在测试行业“混”的第5个年头····

一些碎碎念 什么都做了&#xff0c;和什么都没做其实是一样的&#xff0c;走出“瞎忙活”的安乐窝&#xff0c;才是避开弯路的最佳路径。希望我的经历能帮助到有需要的朋友。 在测试行业已经混了5个年头了&#xff0c;以前经常听到开发对我说&#xff0c;天天的点点点有意思没…

使用Jmeter读取和使用Redis数据

目录 前言 缓存 Redis服务和客户端安装 Jmeter使用Redis 总结&#xff1a; 前言 消息队列和缓存是目前主流的中间件&#xff0c;我们在日常测试过程中&#xff0c;无论是接口还是压力测试&#xff0c;都会遇到需要处理这些中间件数据的情况。本文以Redis对缓存做一个简单…