网上很多都说varnish和nginx搭配的时候,都是varnish在前面,nginx在后面,那我想问,如果nginx在前面的话,那nginx做反向代理,那难道varnish去调用fastcgi吗?我之所以想把varnish放到最前面,主要让varnish缓存一些静态页面,图片以及其他的一些资源,而nginx就用来搭配fastcgi的。
问题二:varnish除了缓存静态html,js,css,图片等资源,还可以缓存什么?动态页面应该不会去缓存的才对吧
问题三:请高手们回到下,varnish在前或者nginx在前的区别是什么?
这么架构意义不大
1)去掉varnish,直接配置nginx作为缓存+fastcgi client (后面的php-fpm是fastcgi server)
2)要负载均衡前面放两台haproxy或者lvs,心跳互联,后面放一排nginx
3)varnish和nginx都是html缓存,动态页面也可以缓存,缓存他们生成的html,页面内动态内容走ajax
4)对动态页面更多的是数据级别的缓存,比如memcached和redis
5)varnish只干http缓存这事儿,nginx整合的协议多点,能干更多的事儿,仅此而已。
网站的人气不行,经常出现错误,也没人管
我之前想回复,打完字竟然发现提交不了,也不知道是怎么回事情导致的。
好了,现在回答你的问题。你提到的问题,我在生产环境中使用过。
nginx在最前面,负责分流:静态资源转发到varnish上,动态请求转发到php-fpm机器上。
动态页面是否需要缓存,要看业务和性能的要求了。使用varnish缓存指定的动态页面是可以的。
varnish前面放nginx是为了做负载均衡,后面放nginx是做web 服务器,varnish当然不能作为web服务器去直接跟PHP打交道了