我在Unicorn上部署了一个生产Rails应用程序,前面有nginx用于静态文件服务.我现在需要一些Varnish的功能,我想知道如何介绍它.
有些人把Varnish放在前面而有些人把nginx放在前面.我没有听说有人只使用Varnish和Unicorn,但我认为它是有效的.
前面有nginx的人似乎正在为gzip和SSL终止这样做. SSL与我的应用程序无关,但gzip是.我觉得清漆很快就会出现,所以为了简单起见,我可以在一段时间内生活.
这两种方法都有其他优点/缺点吗?是否有规范的最佳实践布局?
所以,nginx – >清漆 – >应用服务器.
在我的工作中,我们在所有东西(清漆 – > nginx – > apache / wsgi)前使用Varnish,它的效果非常好.我们认为,如果有缓存命中,则从堆栈的最高点开始提供.但是有一些怪癖. VCL非常特定于其任务,因此使得nginx可以很容易地处理重定向(例如,用于移动检测)等事情变得有点困难.一般来说,它只是不那么灵活,因为它不是它的意图.
一般来说,根据我的阅读(并根据我的工作经验),最好将nginx放在堆栈前面,并在它和你的app服务器之间涂上清漆.
使用Unicorn时这种方法的一个缺点是你将无法使用unix socket方法与nginx和unicorn,因为你必须在两者之间点击清漆,而varnish不支持它们.这可能是一件小事.
更新:有一些额外的,更具体的理由选择一个,请查看this answer’s comments.这取决于您是否需要SSL,ESI和gzip压缩.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。