歡迎您來到潮人地東莞seo博客,本站專業(yè)免費分享多元化的seo網(wǎng)站優(yōu)化技術(shù)干貨以及解答seo各種常見問題的博客網(wǎng)站

熱門關(guān)鍵詞: seo優(yōu)化 seo推廣 seo技術(shù) seo博客 seo網(wǎng)站推廣怎么做 seo怎么做 新手做seo怎么做
當前位置:seo博客首頁 > seo技術(shù)分享 >

seo技術(shù):緩存服務器有那幾種是怎樣(緩存服務器有那幾種會保留用戶緩存)

發(fā)布時間:2023-08-17 22:32:01 文章出處:潮人地東莞seo博客 作者:東莞seo博客 閱讀數(shù)量:

潮人地東莞seo博客小編下面跟大家分享關(guān)于seo技術(shù):緩存服務器有那幾種是怎樣(緩存服務器有那幾種會保留用戶緩存)等問題,希望seo專員在做seo優(yōu)化的過程中有所幫助,內(nèi)容僅供參考。

Varnish是一款高性能且開源的反向代理服務器和HTTP加速器。Varnish具有高性能、速度快、管理更加方便等優(yōu)點,現(xiàn)在Varnish迅速發(fā)展,目前很多大型的網(wǎng)站都開始嘗試使用Varnish來代替squid。

Varnish的主要特征:

(1)緩存代理位置:可以使用內(nèi)存也可以使用磁盤;支持虛擬內(nèi)存的使用;

(2)有精確的時間管理機制,即緩存的時間屬性控制;

seo博客相關(guān)推薦閱讀:seo優(yōu)化方法之:關(guān)于HTTPS改造的常見問題解析

(3)狀態(tài)引擎架構(gòu):在不同的引擎上完成對不同的緩存和代理數(shù)據(jù)進行處理;

(4)緩存管理:以二叉堆管理緩存數(shù)據(jù),做到數(shù)據(jù)的及時清理;

Varnish 與 Squid 的對比

相同點

都是一個反向代理服務器,并且都是開源軟件

Varnish 的優(yōu)勢

(1)穩(wěn)定性:Varnish和Squid在完成相同負載的工作時,Squid服務器發(fā)生故障的幾率要高于Varnish,因為使用Squid需要經(jīng)常重啟;

seo技術(shù):緩存服務器有那幾種是怎樣(緩存服務器有那幾種會保留用戶緩存)

(2)訪問速度更快:Varnish所有緩存的數(shù)據(jù)都是直接從內(nèi)存中讀取,而Squid是從硬盤中讀取;

(3)支持更多的并發(fā)連接:因為Varnish的TCP連接和釋放的速度比Squid快很多

Varnish 的劣勢

(1)Varnish進程一旦重啟,緩存數(shù)據(jù)都會從內(nèi)存中完全釋放,此時所有請求都會發(fā)送到后端服務器,在高并發(fā)情況下,會給后端服務器造成很大壓力;

(2)在Varnish使用中如果使用單個URL的請求通過負載均衡時,則每次請求都會落在不同的Varnish服務器中,造成請求都會到后端服務器;而且同樣的秦桂在多臺服務器上緩存,也會造成Varnish的緩存資源的浪費,造成性能下降;

Varnish 劣勢的解seo排名優(yōu)化權(quán)威火星推薦決方案

針對劣勢一:在訪問量很大的情況下推薦使用 varnish 的內(nèi)存緩存方式啟動,而且后面需要 跟多臺 squid/nginx 服務器。主要為了防止前面的 varnish 服 務、服務器被重啟的情況下, 大量請求穿透 varnish,這樣 squid/nginx 可以就擔當?shù)诙?CACHE,而且也彌補了 varnish 緩 存在內(nèi)存中重啟都會釋放的問題;

針對劣勢二:可以在負載均衡上做 url 哈希,讓單個 url 請求固定請求到一臺 varnish 服務器 上;

安裝Varnish(這里使用4.x版本)

主要是先安裝varnish,然后后端安裝2個web服務器,可以使用Apache。

[root@localhost ~]# yum -y install autoconf automake libedit-devel libtool ncurses-devel pcre-devel pkgconfig python-docutils python-sphinx[root@localhost ~]# tar zxf varnish-4.0.3.tar.gz [root@localhost ~]# cd varnish-4.0.3/[root@localhost varnish-4.0.3]# ./configure && make && make install[root@localhost varnish-4.0.3]# cp etc/example.vcl /usr/loc越秀seo快速排名al/var/varnish///復制Varnish主配置文件 [root@localhost /]# vim /usr/local/var/varnish/example.vcl //編輯Varnish主配置 vcl 4.0; import directors; import std; # Default backend definition. Set this to point to your content server.probe backend_healthcheck { .url="/"; #訪問后端服務器根路徑.interval = 5s; #請求時間間隔.timeout = 1s; #請求超時時間.window = 5; #指定輪詢次數(shù)5次.threshold = 3; #如果出現(xiàn)3次失敗則表示后端服務器異常} backend web1 { #定義后端服務器.host = "192.168.1.7"; #要轉(zhuǎn)向主機(即后端主機)的 IP 或域名.port = "80"; #指定后端服務器的端口號.probe = backend_healthchecseo搜索排名優(yōu)化湖南k; #健康檢查調(diào)用backend_healthcheck定義的內(nèi)容} backend web2 { .host = "192.168.1.8"; .port = "80"; .probe = backend_healthcheck; } acl purgers { #定義訪問控制列表"127.0.0.1"; "localhost"; "192.168.1.0/24"; !"192.168.1.8"; } sub vcl_init { #調(diào)用 vcl_init 初始化子程序創(chuàng)建后端主機組,即 directorsnew web_cluster=directors.round_robin(); #使用 new 關(guān)鍵字創(chuàng)建 drector 對象,使用 round_robin(輪詢) 算法web_cluster.add_backend(web1); #添加后端服務器節(jié)點web_cluster.add_backend(web2); } sub vcl_recv { setreq.backend_hint = web_cluster.backend(); #指定請求的后端節(jié)點web_cluster定義的后端節(jié)點if(req.method == "PURGE") { #判斷客戶端的請求頭部是否是PURGEif(!client.ip ~ purgers) { #如果是,再判斷客戶端的IP地址是不是在ACL訪問控制列表中.return(synth(405, "Not Allowed.")); #如果不是,返回給客戶端405狀態(tài)碼并且返回定義的頁面.} return(purge); #如果是ACL定義的,則交給purge處理.} if(req.method != "GET"&& req.method != "HEAD"&& req.method != "PUT"&& req.method != "POST"&& req.method != "TRACE"&& req.method != "OPTIONS"&& req.method != "PATCH"&& req.method != "DELETE") { #判斷客戶端的請求類型return(pipe); } if(req.method != "GET"&& req.method != "HEAD") { return(pass); #如果不是GET及HEAD則交給pass.} if(req.url ~ "\.(php|asp|aspx|jsp|do|ashx|shtml)($|\?)") { return(pass); #當客戶端訪問的是.php等結(jié)尾的交給pass處理.} if(req.http.Accept-Encoding) { if(req.url ~ "\.(bmp|png|gif|jpg|jpeg|ico|gz|tgz|bz2|tbz|zip|rar|mp3|mp4|ogg|swf|flv)$") { unsetreq.http.Accept-Encoding; #取消客戶端接收的壓縮類型} elseif (req.http.Accept-Encoding ~ "gzip") { setreq.http.Accept-Encoding = "gzip"; #如果有g(shù)zip類型,標記gzip類型.} elseif (req.http.Accept-Encoding ~ "deflate") { setreq.http.Accept-Encoding = "deflate"; } else{ unsetreq.http.Accept-Encoding; #其他未定義的頁面也取消客戶但接收的壓縮類型.} } if(req.url ~ "\.(css|js|html|htm|bmp|png|gif|jpg|jpeg|ico|gz|tgz|bz2|tbz|zip|rar|mp3|mp4|ogg|swf|flv)($|\?)") { unsetreq.http.cookie; #取消客戶端的cookie值.return(hash); #將請求轉(zhuǎn)發(fā)給hash子程序,也就是查看本地緩存.} if(req.restarts == 0) { #判斷客戶端是不是第一次請求if(req.http.X-Forwarded-For) { #如果是第一次請求,設置獲取客戶端的IP地址.setreq.http.X-Forwarded-For = req.http.X-Forwarded-For + ", "+ client.ip; } else{ setreq.http.X-Forwarded-For = client.ip; } } return(hash); } sub vcl_hash { hash_data(req.url); #查看客戶端請求的頁面,并且進行hashif(req.http.host) { hash_data(req.http.host); #設置客戶端的主機} else{ hash_data(server.ip); #設置服務器的IP} return(lookup); } sub vcl_hit { if(req.method == "PURGE") { #如果是HIT并且當客戶端請求的類型是PURGE返回的200的狀態(tài)碼,并返回相應頁面.return(synth(200, "Purged.")); } return(deliver); } sub vcl_miss { if(req.method == "PURGE") { return(synth(404, "Purged.")); #如果是miss返回404} return(fetch); } sub vcl_deliver { if(obj.hits > 0) { setresp.http.CXK = "HIT-from-varnish"; #設置http頭部X-Cache =hitsetresp.http.X-Cache-Hits = obj.hits; #返回命令的次數(shù)} else{ setresp.http.X-Cache = "MISS"; } unsetresp.http.X-Powered-By; #取消顯示web版本unsetresp.http.Server; #取消顯示varnish服務unsetresp.http.X-Drupal-Cache; #取消顯示緩存的框架unsetresp.http.Via; #取消顯示文件內(nèi)容來源unsetresp.http.Link; #取消顯示HTML的超鏈接地址unsetresp.http.X-Varnish; #取消顯示varnish的idsetresp.http.xx_restarts_count = req.restarts; #設置客戶端請求的次數(shù)setresp.http.xx_Age = resp.http.Age; #顯示緩存文件的時長#set resp.http.hit_count = obj.hits; #顯示緩存命中的次數(shù)#unset resp.http.Age;return(deliver); } sub vcl_pass { return(fetch); #將后端服務器返回的數(shù)據(jù)緩存到本地} sub vcl_backend_response { setberesp.grace = 5m; #緩存額外寬限時間if(beresp.status == 499 || beresp.status == 404 || beresp.status == 502) { setberesp.uncacheable = true; #當后端服務器相應狀態(tài)碼是449等,不緩存} if(bereq.url ~ "\.(php|jsp)(\?|$)") { setberesp.uncacheable = true; #當是PHP的頁面不緩存} else{ if(bereq.url ~ "\.(css|js|html|htm|bmp|png|gif|jpg|jpeg|ico)($|\?)") { setberesp.ttl = 15m; #當是上面結(jié)尾的,緩存15分鐘unsetberesp.http.Set-Cookie; } elseif (bereq.url ~ "\.(gz|tgz|bz2|tbz|zip|rar|mp3|mp4|ogg|swf|flv)($|\?)") { setberesp.ttl = 30m; #緩存30分鐘unsetberesp.http.Set-Cookie; } else{ setberesp.ttl = 10m; #生存時間10分鐘unsetberesp.http.Set-Cookie; } } return(deliver); } sub vcl_purge { return(synth(200,"success")); } sub vcl_backend_error { if(beresp.status == 500 || beresp.status == 501 || beresp.status == 502 || beresp.status == 503 || beresp.status == 504) { return(retry); #如果狀態(tài)碼是上述其中之一,則重新請求} } sub vcl_fini { return(ok); } [root@localhost /]# varnishd -f /usr/local/var/varnish/example.vcl -s malloc,200M -a 0.0.0.0:80//啟動服務

如果重啟Varnishd如下:

第一臺web提供頁面

第二臺

[root@localhost ~]# yum -y install httpd[root@localhost ~]# echo 第二臺 > /var/www/html/index.html[root@localhost ~]# systemctl start httpd

第一次訪問:

第二次訪問即有緩存了

以上是潮人地東莞seo博客跟大家分享關(guān)于seo技術(shù):緩存服務器有那幾種是怎樣(緩存服務器有那幾種會保留用戶緩存)等問題,希望能對大家有所幫助,若有不足之處,請諒解,我們大家可以一起討論關(guān)于網(wǎng)站seo優(yōu)化排名的技巧,一起學習,以上內(nèi)容僅供參考。

閱讀全文
本文標題"seo技術(shù):緩存服務器有那幾種是怎樣(緩存服務器有那幾種會保留用戶緩存)":http://www.420113.com/jsfx_25118.html
本文版權(quán)歸潮人地seo博客所有,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須在文章頁面給出原文連接,否則保留追究法律責任的權(quán)利。
標簽:
合作伙伴
主站蜘蛛池模板: 国产成人无码免费视频97| 国产成人无码av| 中文字幕乱偷无码av先锋蜜桃| 人妻av无码一区二区三区| 亚洲爆乳大丰满无码专区| 久久伊人中文无码| 精品无码一区二区三区爱欲| 免费无码A片一区二三区| 一本大道东京热无码一区| 老子午夜精品无码| 精品久久久无码中文字幕天天| 无码区国产区在线播放| 国产免费黄色无码视频| 亚洲欧洲无码一区二区三区| 国产精品无码A∨精品影院| 亚洲精品无码99在线观看| 亚洲中文字幕无码av| 欧洲人妻丰满av无码久久不卡 | 亚洲综合无码一区二区三区| 精品久久久无码中文字幕边打电话 | 国产成人无码区免费A∨视频网站| 亚洲精品无码不卡在线播放HE | 国产成年无码久久久久下载| 四虎成人精品无码| 国产亚洲3p无码一区二区| JLZZJLZZ亚洲乱熟无码| 国产精品无码av片在线观看播| 精品国精品无码自拍自在线| 无码精品久久久天天影视| 亚洲精品无码久久一线| 亚洲熟妇无码AV在线播放| 日韩精品无码免费专区午夜不卡| 国产av激情无码久久| 一本之道高清无码视频| 天堂无码在线观看| 国产福利电影一区二区三区久久老子无码午夜伦不 | 国产成人无码免费看片软件 | 国产精品无码av在线播放| 亚洲熟妇无码AV在线播放| 无码人妻精品一区二区三区在线| 国产热の有码热の无码视频|