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