【问题标题】:In a rails 3.1 app, can I compile and serve the static assets from just one server?在 rails 3.1 应用程序中,我可以仅从一台服务器编译和提供静态资产吗?
【发布时间】:2012-01-01 21:31:16
【问题描述】:

我在 3 个应用服务器(3 个节点)上运行 Rails 3.1 应用。 部署时,资产管道通过 capistrano 钩子在所有 3 个实例上编译资产,服务器负载太高。

我能做的就是在本地预编译资产并上传到应用服务器。

首先,我正在运行 Nginx 在集群之间分配请求。

我的问题是我可以只在一台服务器上编译资产并仅通过该实例提供服务吗?

这将减少所有 3 个应用服务器上资产的编译/上传。有人这样部署吗?

【问题讨论】:

    标签: ruby-on-rails-3.1 asset-pipeline


    【解决方案1】:

    解决这个问题的最简单方法是在本地编译,提交文件并上传,而不运行编译任务。

    另一种是在本地编译,上传到您想要的任何服务器,并设置 nginx 将请求转发到该服务器。

    第三种方式是将本地编译好的资产上传到所有三台服务器上,让nginx像以前一样进行负载均衡。

    无论如何,您都应该做的一件事是设置 nginx 为 /assets 添加远期标头并设置最大压缩。这减少了对这些资产的请求(由于客户端缓存),并减少了第一次请求时的交付时间。

    【讨论】:

      猜你喜欢
      • 2011-11-11
      • 2015-07-12
      • 1970-01-01
      • 1970-01-01
      • 2011-09-21
      • 2013-08-28
      • 1970-01-01
      • 2016-08-08
      • 1970-01-01
      相关资源
      最近更新 更多