您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“varnish、squid、apache和nginx的區(qū)別是什么”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
一、varnish、squid、apache、nginx的區(qū)別
1、從這些功能上。varnish和squid是專業(yè)的cache服務(wù),而apache,nginx這些都是第三方模塊完成。
2、要做cache服務(wù)的話,我們肯定是要選擇專業(yè)的cache服務(wù),優(yōu)先選擇squid和varnish。
varnish本身的技術(shù)上優(yōu)勢要高于squid,它采用了“visual page cache”技術(shù),在內(nèi)存的利用上,varnish比squid具有優(yōu)勢,它避免了squid頻繁在內(nèi)存、磁盤中交換文件,性能要比squid高。varnish是不能cache到本地硬盤上的。
還有強大的通過varnish管理端口,可以使用正則表達(dá)式快速、批量地清除部分緩存
squid的優(yōu)勢在于完整的龐大的cache技術(shù)資料,和很多的應(yīng)用生產(chǎn)環(huán)境(這應(yīng)該與squid早出來有關(guān))。
3、談?wù)刵ginx,nginx是用第三方模塊ncache做的緩沖,其性能基本達(dá)到varnish,但在架構(gòu)中nginx一般作為反向(靜態(tài)文件現(xiàn)在用nginx的很多,并發(fā)能支持到2萬+)。在靜態(tài)架構(gòu)中,如果前端直接面對的是cdn活著前端了4層負(fù)載的話,完全用nginx的cache就夠了。
4、本人覺得如果是在apache服務(wù)上提升性能,做一些本地cache是完全可以的,但如果在系統(tǒng)架構(gòu)中用apache做cache服務(wù),那就有點牛頭不對馬尾了。
二、測試varnish、squid、apache、nginx
一,測試環(huán)境
1,硬件是奔騰雙核,機子三年前買的。系統(tǒng)是archlinux
2,測試varnish和squid的時候,web服務(wù)用的apache
3,測試apache的時候,啟動了5個進(jìn)程,不過隨著壓力的增加,進(jìn)程會增加的。
4,測試nginx的時候,啟動了十個nginx進(jìn)程,20個php-cgi進(jìn)程
5,varnish,squid,nginx用的是反向代理的形勢,也就是說訪問圖片的時候,要先透過緩存工具
二,測試
1,varnish
復(fù)制代碼 代碼如下:
[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
復(fù)制代碼 代碼如下:
[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,現(xiàn)在呢,squid是最差的。后來我看了一下log文件,發(fā)現(xiàn)正常情況下,緩存和沒有緩存的比率不是1:2,如果在高壓力下,緩存和沒有緩存的比率更小。
3,apache
復(fù)制代碼 代碼如下:
[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
復(fù)制代碼 代碼如下:
[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.
從上面的測試結(jié)果我們可以發(fā)現(xiàn),varnish > nginx > apache > squid,我想這個結(jié)果,根大家預(yù)期的結(jié)果有點出入,因為squid做老牌文件緩存工具怎么會這么差呢,squid的命中率低。
varnish是一款高性能的開源http加速器,一般用來和nginx、apache等搭配使用,組建一個高效率的web服務(wù)器。varnish的某個負(fù)責(zé)接受新http連接的線程開始等待用戶,如果有新的http連接過來,它總負(fù)責(zé)接收,然后叫醒某個等待中的線程。
worker線程讀入http請求的uri,查找已有的object,如果命中則直接返回并回復(fù)用戶。如果沒有命中,則需要將所請求的內(nèi)容,從后端服務(wù)器中取過來,存到緩存中,然后再回復(fù)。varnish根據(jù)所讀到object的大小,創(chuàng)建相應(yīng)大小的緩存文件。
按照官方的說法,varnish是一個cache型的http反向dai理,varnish根據(jù)請求來創(chuàng)建緩存文件,如果有一個超時線程,檢測緩存中所有object的生存期,如果超初設(shè)定的ttl(time to live)沒有被訪問,就刪除之,并且釋放相應(yīng)的結(jié)構(gòu)體及存儲內(nèi)存。
從各方面的數(shù)據(jù)來看,varnish在處理web請求的能力已經(jīng)強于squid、apache等,使用varnish能大提高你的web服務(wù)器并且降低web服務(wù)器負(fù)載。
“varnish、squid、apache和nginx的區(qū)別是什么”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。