這部分教程包含了varnish基本原理。囊括了什麼是varnish、它怎樣工做,同時也包含了開始使用和運行varnish。這部分事後你可能想繼續瞭解用戶嚮導(varnish用戶引導)。 若是你正在web上讀這些呢 注意每頁左邊的Next topic和Previous topichtml
The fundamentals of web proxy caching with Varnish使用varnish做爲web代理緩存的原理web
Supported platforms 支持平臺算法
About the Varnish development process varnish開發程序相關信息後端
Getting in touch 聯繫瀏覽器
Starting Varnish 開始使用varnish緩存
Put Varnish on port 80 讓varnish監聽在80端口服務器
Restarting Varnish again 再次重啓varnishcookie
Backend servers 後端服務器網絡
Peculiarities 特點架構
Now what? Now what?
varnish是一個http反向代理的緩存。它從客戶端接收請求而後嘗試從緩存中獲取數據來響應客戶端的請求,若是varnish不能從緩存中得到數據來響應客戶端,它將轉發請求到後端(backend servers),獲取響應同時存儲,最後交付給客戶端。
若是varnish已經緩存了某個響應,它比你傳統的後端服務器的響應要快不少,因此你須要儘量是更多的請求直接從varnish的緩存中獲取響應。
varnish決定是緩存內容或者是從後端服務器獲取響應。後端服務器能經過http響應頭中的Cache-Control來同事varnish緩存內容。在某些條件下varnish將不緩存內容,最多見的是使用cookie。當一個被標記有cookie的客戶端web請求,varnish默認是不緩存。這些衆多的varnish功能特色都是能夠經過寫vcl來改變的。
varnish使用現代先進的架構設計。一般依賴於網絡的速度,而不是性能問題。你應該更關心你的web應用的處理能力,而不是varnish的性能。
提升varnish緩存性能的關鍵點,是它靈活的配置語言,VCL。VCL容許你編寫如何處理請求的規則。經過使用規則你能夠決定如何處理內容,從哪裏獲取內容,以及怎樣修改請求和響應。
varnish開發來是運行當前的Linux和FreeBSD的版本上,固然最好能就運行在這些系統之上。感謝這些貢獻者也讓varnish能運行在 NetBSD, OpenBSD, OS X 以及各類各樣的Solaris系統,像Oracle Solaris, OmniOS and SmartOS。
varnish是一個社區驅動項目。Varnish Governing Board監督varnish的開發,成員包括Poul-Henning Kamp (Architect), Rogier Mulhuijzen (Fastly) and Lasse Karstensen (Varnish Software). 若是你想爲varnish作出貢獻,請查看這個連接:https://www.varnish-cache.org/trac/wiki/Contributing
本教程假定你已經運行了Varnish在Ubuntu,Debian,Enterprise Linux 或者是 CentOS上。 若是你要運行varnish在另外一些系統上,你須要費點腦力來轉換了。之後你就能夠盡情的使用它了,即使是在你的weird(怪癖的)的系統上肯定你已經成功的安裝好了varnish(下面的操做在Installing Varnish之上) 當你正確的安裝好varnish後就可使用
service varnish start
來啓動varnish,若是varnish沒有啓動,剛剛的指令將啓動varnish,如今你的vanish運行起來了。 經過瀏覽器來訪問http://127.0.0.1:6081/(使用你本身機器的ip來替換127.0.0.1)。默認配置轉發請求給web應用。Varnish認爲web應用是監聽在8080端口。 若是沒有web應用監聽在本機的8080端口,varnish將報錯。當出現問題的時候,varnish cache友好的提供給你一個頁面像"Error 503 Service Unavailable" 你能夠運行web應用在其餘端口或者其餘主機。如今咱們編輯配置文件,讓他指向某個工做的主機。 選一個你喜歡的編輯器,編輯/etc/varnish/default.vcl 這個文件大部分是註釋掉的,有些沒有,像下面的:
vcl 4.0; backend default { .host = "127.0.0.1"; .port = "8080"; }
如今咱們改變這個vcl配置文件,指向某個活動主機,幸運的是http://www.varnish-cache.org/是活動的,咱們就用這個http://www.varnish-cache.org/ 在vcl中替換成下面這樣。 vcl 4.0;
backend default { .host = "www.varnish-cache.org"; .port = "80"; }
執行
service varnish reload
使Varnish重載它的配置文件。若是成功,你在瀏覽器訪問http://127.0.0.1:6081 將看到一些目錄列表。你沒有看到varnish的官方站點是由於你客戶端請求的頭裏沒有設置合適的Host,而後服務器以默認的文件夾列表來響應。
出於測試目的咱們一直讓varnish運行在一個高的端口。如今咱們讓varnish監聽在80端口 首先中止varnish :service varnish stop 咱們須要編輯配置文件而後啓動Varnish
Debian/Ubuntu是這個配置文件/etc/default/varnish。這個文件看起來像這樣: DAEMONOPTS="-a :6081 \ -T localhost:6082 \ -f /etc/varnish/default.vcl \ -S /etc/varnish/secret \ -s malloc,256m" 修改爲這樣 DAEMONOPTS="-a :80 \ -T localhost:6082 \ -f /etc/varnish/default.vcl \ -S /etc/varnish/secret \ -s malloc,256m"
Red Hat/CentOS配置文件路徑爲/etc/sysconfig/varnish,修改方式相同
修改完成後就能夠重啓Varnish:
service varnish start.
如今全部人訪問你的網站都會經過Varnish了。
原文連接:https://www.varnish-cache.org/docs/4.0/tutorial/backend_servers.html
Varnish有個後端或者源服務器的概念。一個後端服務器是提供內容的服務器,Varnish將經過使用緩存內容來加速。 第一個任務是告知Varnish哪裏能夠獲取到這些內容。開啓你喜歡的編輯器,打開默認的配置文件。若是你經過源碼安裝默認的配置文件是這個/usr/local/etc/varnish/default.vcl 若是你經過包安裝(想apt-get或者yum),它多是這個/etc/varnish/default.vcl。 若是你跟進這個教程,本節你的配置文件看起來是這樣的: vcl 4.0;
backend default { .host = "www.varnish-cache.org"; .port = "80"; }
配置文件的意思是咱們在varnish裏配置了一個後端,從www.varnish-cache.org的80端口獲取內容。 若是你不想作一個varnish-cache.org的鏡像,咱們須要調整Varnish從你本身的源服務器獲取內容。咱們已經綁定Varnish在80端口,如今咱們須要把它和源服務器聯繫起來。 像下面這個例子,咱們假冒了個監聽在localhost 8080端口的源服務器。 vcl 4.0;
backend default { .host = "127.0.0.1"; .port = "8080"; }
varnish能夠定義不少個後端,甚至是將這個後端添加到一個集羣裏面使它們達到服務在均衡的目的,Varnish根據當前的調度算法挑選出一個後端 下一步,讓咱們看看varnish有什麼獨特的地方,同時咱們能用它作點什麼。
原文連接:https://www.varnish-cache.org/docs/4.0/tutorial/peculiarities.html
varnish cache和其餘的一些項目是有所不一樣的,其中一個就是你已經看到的VCL。本機咱們將快速向你展現你須要瞭解到的關於varnish的其餘特性
varnish用VCL來編寫配置文件。當varnish使用配置文件,它將配置文件轉換成C代碼,載入到C的編譯器,而後執行 這樣的話你調整的各類各樣設置,你編寫的處理請求的vcl規則將被處理。
varnish緩存有個管理控制檯(varnishadm) ,你能夠經過使用命令varnishadm來鏈接管理控制檯,爲了認證你須要有/etc/varnish/secret的讀取權限。 你能夠利用varnishadm來中止、開啓緩存進程、載入VCL規則、調整負載均衡器、清除緩存等等,而後退出。 varnishadm 內建命令help幫助你瞭解到varnishadm能作些什麼。
Varnish默認不記錄日誌到磁盤,而是記錄在一塊內存裏,其實是日誌流。任什麼時候間你均可以鏈接它,看看發生了什麼。Varnish記錄了一些信息。你也可使用varnishlog來查看日誌流
varnish簡要教程如今就完了,你的varnish如今應該已經跑起來了。你應該看看varnish的日誌,你的VCL配置文件也是粗糙的。下一步,你可能須要看看Varnish用戶引導,咱們能看到更多varnish詳細的特色,