加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > Nginx > 正文

nginx – Varnish通常会进入Rails网络堆栈?

发布时间:2020-12-13 21:13:34 所属栏目:Nginx 来源:网络整理
导读:我在Unicorn上部署了一个生产Rails应用程序,前面有nginx用于静态文件服务.我现在需要一些Varnish的功能,我想知道如何介绍它. 有些人把Varnish放在前面而有些人把nginx放在前面.我没有听说有人只使用Varnish和Unicorn,但我认为它是有效的. 前面有nginx的人似

我在Unicorn上部署了一个生产Rails应用程序,前面有nginx用于静态文件服务.我现在需要一些Varnish的功能,我想知道如何介绍它.

有些人把Varnish放在前面而有些人把nginx放在前面.我没有听说有人只使用Varnish和Unicorn,但我认为它是有效的.

前面有nginx的人似乎正在为gzip和SSL终止这样做. SSL与我的应用程序无关,但gzip是.我觉得清漆很快就会出现,所以为了简单起见,我可以在一段时间内生活.

这两种方法都有其他优点/缺点吗?是否有规范的最佳实践布局?

最佳答案
Heroku(例如)可能因为你提到的原因而放了nginx in front of varnish.

所以,nginx – >清漆 – >应用服务器.

在我的工作中,我们在所有东西(清漆 – > nginx – > apache / wsgi)前使用Varnish,它的效果非常好.我们认为,如果有缓存命中,则从堆栈的最高点开始提供.但是有一些怪癖. VCL非常特定于其任务,因此使得nginx可以很容易地处理重定向(例如,用于移动检测)等事情变得有点困难.一般来说,它只是不那么灵活,因为它不是它的意图.

一般来说,根据我的阅读(并根据我的工作经验),最好将nginx放在堆栈前面,并在它和你的app服务器之间涂上清漆.

使用Unicorn时这种方法的一个缺点是你将无法使用unix socket方法与nginx和unicorn,因为你必须在两者之间点击清漆,而varnish不支持它们.这可能是一件小事.

更新:有一些额外的,更具体的理由选择一个,请查看this answer’s comments.这取决于您是否需要SSL,ESI和gzip压缩.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读