網(wǎng)路上很多都說varnish和nginx搭配的時(shí)候,都是varnish在前面,nginx在後面,那我想問,如果nginx在前面的話,那nginx做反向代理,那難道varnish去調(diào)用fastcgi嗎?我之所以想把varnish放到最前面,主要讓varnish快取一些靜態(tài)頁面,圖片以及其他的一些資源,而nginx就用來搭配fastcgi的。
問題二:varnish除了快取靜態(tài)html,js,css,圖片等資源,還可以快取什麼?動(dòng)態(tài)頁面應(yīng)該不會(huì)去快取的才對(duì)吧
問題三:請(qǐng)高手們回到下,varnish在前或nginx在前的差異是什麼?
這麼架構(gòu)意義不大
1)去掉varnish,直接配置nginx作為緩存+fastcgi client (後面的php-fpm是fastcgi server)
2)要負(fù)載均衡前面放兩臺(tái)haproxy或lvs,心跳互聯(lián),後面放一排nginx
3)varnish和nginx都是html緩存,動(dòng)態(tài)頁面也可以緩存,緩存他們生成的html,頁面內(nèi)動(dòng)態(tài)內(nèi)容走ajax
4)對(duì)動(dòng)態(tài)頁面更多的是數(shù)據(jù)級(jí)別的緩存,比如memcached和redis
5)varnish只幹http快取這事兒,nginx整合的協(xié)定多點(diǎn),能幹更多的事兒,僅此而已。
網(wǎng)站的人氣不行,常出現(xiàn)錯(cuò)誤,也沒人管
我之前想回復(fù),打完字竟然發(fā)現(xiàn)提交不了,也不知道是怎麼回事情導(dǎo)致的。
好了,現(xiàn)在回答你的問題。你提到的問題,我在生產(chǎn)環(huán)境中使用過。
nginx在最前面,負(fù)責(zé)分流:靜態(tài)資源轉(zhuǎn)送到varnish上,動(dòng)態(tài)請(qǐng)求轉(zhuǎn)送到php-fpm機(jī)器上。
動(dòng)態(tài)頁面是否需要緩存,要看業(yè)務(wù)和效能的要求了。使用varnish快取指定的動(dòng)態(tài)頁面是可以的。
varnish前面放nginx是為了做負(fù)載均衡,後面放nginx是做web 伺服器,varnish當(dāng)然不能作為web伺服器去直接跟PHP打交道了