nginx – Varnish通常会进入Rails网络堆栈?
我在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压缩. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- Nginx Php-fpm在任何地方都没有记录500错误
- 如何配置Nginx在404处理之前尝试两个上游?
- nginx错误页面和内部指令无法按预期工作
- nginx访问502 gateway,*1 connect() failed (11
- 如何使用Nginx(healthd)在access_log文件名中使用
- ruby-on-rails-4-Rails域约束(服务于多个域)
- ruby-on-rails – 用Bundler安装Gems ==大问题
- Letsencrypt certbot-nginx插件.它是如何工作的?
- Nginx letsencrypt OCSP stappling
- Tomcat和nginx大小调整