搜索

首页  >  问答  >  正文

varnish+nginx+fastcgi+mysql架构

网上很多都说varnish和nginx搭配的时候,都是varnish在前面,nginx在后面,那我想问,如果nginx在前面的话,那nginx做反向代理,那难道varnish去调用fastcgi吗?我之所以想把varnish放到最前面,主要让varnish缓存一些静态页面,图片以及其他的一些资源,而nginx就用来搭配fastcgi的。
问题二:varnish除了缓存静态html,js,css,图片等资源,还可以缓存什么?动态页面应该不会去缓存的才对吧
问题三:请高手们回到下,varnish在前或者nginx在前的区别是什么?

phpcn_u1582phpcn_u15822781 天前666

全部回复(3)我来回复

  • PHP中文网

    PHP中文网2017-05-16 17:28:46

    这么架构意义不大

    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整合的协议多点,能干更多的事儿,仅此而已。

    回复
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-16 17:28:46

    网站的人气不行,经常出现错误,也没人管
    我之前想回复,打完字竟然发现提交不了,也不知道是怎么回事情导致的。

    好了,现在回答你的问题。你提到的问题,我在生产环境中使用过。
    nginx在最前面,负责分流:静态资源转发到varnish上,动态请求转发到php-fpm机器上。

    动态页面是否需要缓存,要看业务和性能的要求了。使用varnish缓存指定的动态页面是可以的。

    回复
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-16 17:28:46

    varnish前面放nginx是为了做负载均衡,后面放nginx是做web 服务器,varnish当然不能作为web服务器去直接跟PHP打交道了

    回复
    0
  • 取消回复