千家信息网

varnish、squid、apache和nginx的区别是什么

发表于:2025-02-23 作者:千家信息网编辑
千家信息网最后更新 2025年02月23日,本篇内容介绍了"varnish、squid、apache和nginx的区别是什么"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大
千家信息网最后更新 2025年02月23日varnish、squid、apache和nginx的区别是什么

本篇内容介绍了"varnish、squid、apache和nginx的区别是什么"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

一、varnish、squid、apache、nginx的区别

1、从这些功能上。varnish和squid是专业的cache服务,而apache,nginx这些都是第三方模块完成。

2、要做cache服务的话,我们肯定是要选择专业的cache服务,优先选择squid和varnish。

varnish本身的技术上优势要高于squid,它采用了"visual page cache"技术,在内存的利用上,varnish比squid具有优势,它避免了squid频繁在内存、磁盘中交换文件,性能要比squid高。varnish是不能cache到本地硬盘上的。

还有强大的通过varnish管理端口,可以使用正则表达式快速、批量地清除部分缓存

squid的优势在于完整的庞大的cache技术资料,和很多的应用生产环境(这应该与squid早出来有关)。

3、谈谈nginx,nginx是用第三方模块ncache做的缓冲,其性能基本达到varnish,但在架构中nginx一般作为反向(静态文件现在用nginx的很多,并发能支持到2万+)。在静态架构中,如果前端直接面对的是cdn活着前端了4层负载的话,完全用nginx的cache就够了。

4、本人觉得如果是在apache服务上提升性能,做一些本地cache是完全可以的,但如果在系统架构中用apache做cache服务,那就有点牛头不对马尾了。

二、测试varnish、squid、apache、nginx

一,测试环境

1,硬件是奔腾双核,机子三年前买的。系统是archlinux

2,测试varnish和squid的时候,web服务用的apache

3,测试apache的时候,启动了5个进程,不过随着压力的增加,进程会增加的。

4,测试nginx的时候,启动了十个nginx进程,20个php-cgi进程

5,varnish,squid,nginx用的是反向代理的形势,也就是说访问图片的时候,要先透过缓存工具

二,测试

1,varnish

复制代码 代码如下:

[root@blackghost bin]# /usr/local/bin/webbench -c 100 -t 20 http://127.0.0.1:8080/00/01/rwgowetwvcqaaaaaaaawhh0rklg81.gif
webbench - simple web benchmark 1.5
copyright (c) radim kolar 1997-2004, gpl open source software.

benchmarking: get http://127.0.0.1:8080/00/01/rwgowetwvcqaaaaaaaawhh0rklg81.gif
100 clients, running 20 sec.

speed=476508 pages/min, 47258114 bytes/sec.
requests: 158836 susceed, 0 failed.

varnish的缓存效率命中率真的好高

2,squid

复制代码 代码如下:

[root@blackghost bin]# /usr/local/bin/webbench -c 100 -t 20 http://localhost:9000/00/01/rwgowetwvcqaaaaaaaawhh0rklg81.gif
webbench - simple web benchmark 1.5
copyright (c) radim kolar 1997-2004, gpl open source software.

benchmarking: get http://localhost:9000/00/01/rwgowetwvcqaaaaaaaawhh0rklg81.gif
100 clients, running 20 sec.

speed=133794 pages/min, 7475018 bytes/sec.
requests: 44598 susceed, 0 failed.

从测试效果来说,squid挺让我失望的,在测试前,我心里是这样估计的,缓存最好的是varnish,其次是squid,然后nginx,最后是apache,现在呢,squid是最差的。后来我看了一下log文件,发现正常情况下,缓存和没有缓存的比率不是1:2,如果在高压力下,缓存和没有缓存的比率更小。

3,apache

复制代码 代码如下:

[root@blackghost conf]# /usr/local/bin/webbench -c 100 -t 20 http://localhost/00/01/rwgowetwvcqaaaaaaaawhh0rklg81.gif
webbench - simple web benchmark 1.5
copyright (c) radim kolar 1997-2004, gpl open source software.

benchmarking: get http://localhost/00/01/rwgowetwvcqaaaaaaaawhh0rklg81.gif
100 clients, running 20 sec.

speed=160890 pages/min, 15856005 bytes/sec.
requests: 53630 susceed, 0 failed.

4,nginx

复制代码 代码如下:

[root@blackghost conf]# /usr/local/bin/webbench -c 100 -t 20 http://localhost:10000/00/01/rwgowetwvcqaaaaaaaawhh0rklg81.gif
webbench - simple web benchmark 1.5
copyright (c) radim kolar 1997-2004, gpl open source software.

benchmarking: get http://localhost:10000/00/01/rwgowetwvcqaaaaaaaawhh0rklg81.gif
100 clients, running 20 sec.

speed=304053 pages/min, 30121517 bytes/sec.
requests: 101351 susceed, 0 failed.

从上面的测试结果我们可以发现,varnish > nginx > apache > squid,我想这个结果,根大家预期的结果有点出入,因为squid做老牌文件缓存工具怎么会这么差呢,squid的命中率低。

varnish是一款高性能的开源http加速器,一般用来和nginx、apache等搭配使用,组建一个高效率的web服务器。varnish的某个负责接受新http连接的线程开始等待用户,如果有新的http连接过来,它总负责接收,然后叫醒某个等待中的线程。

worker线程读入http请求的uri,查找已有的object,如果命中则直接返回并回复用户。如果没有命中,则需要将所请求的内容,从后端服务器中取过来,存到缓存中,然后再回复。varnish根据所读到object的大小,创建相应大小的缓存文件。

按照官方的说法,varnish是一个cache型的http反向dai理,varnish根据请求来创建缓存文件,如果有一个超时线程,检测缓存中所有object的生存期,如果超初设定的ttl(time to live)没有被访问,就删除之,并且释放相应的结构体及存储内存。

从各方面的数据来看,varnish在处理web请求的能力已经强于squid、apache等,使用varnish能大提高你的web服务器并且降低web服务器负载。

"varnish、squid、apache和nginx的区别是什么"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

缓存 服务 测试 代码 文件 时候 服务器 线程 进程 内存 内容 性能 技术 架构 结果 专业 优势 前端 压力 命中率 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 软件开发阶段可以进行的安全活动 esxi离线下载服务器搭建 创世神游戏服务器 有哪些网络技术平台 耐特新维网络技术有限公司 兰州有哪些软件开发公司 网络安全法多少年开始了 广东服务器托管 甘肃省大学生网络安全 晨星咨询公司软件开发 云盘上服务器训练数据 做好奥运会期间网络安全保障工作 win需要网络安全证书 如何快速检测服务器断开 美国大学网络安全专业 未成年人网络安全标语 外包软件开发不满意怎么办 深圳服务软件开发报价 网络安全监管机制工作 学服务器管理维护 天猫精灵出现服务器错误 社区信息网络安全工作制度 华为云软件开发平台区域选择哪个 惠普服务器阵列卡读不到硬盘 数据库sql服务器启动 网络安全技术体系王斌君 网吧服务器和其他客机连接 深圳市杰德网络技术有限公司 成人网络安全 假设有一组图像数据库
0