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