有时候,由于错误/错误(通常在单个文件中),我不得不对生产代码进行热补丁,但是在开发环境中,我将eager_load
和cache_classes
设置为true。由于这两个原因,服务器加载大约需要2分半钟,而热补丁也是如此。
我的最终目标是减少服务器加载时间。一种方法是为应用程序启动时不需要的gem添加'require:false',然后在需要时加载它们。但是有可能只重新加载更新的文件而不是重新启动整个应用程序吗?
我正在使用免费的nginx服务器(企业nginx版本可以是提供零停机时间的解决方案,但是该版本可以吗?)
答案 0 :(得分:0)
购买企业版Nginx不会帮助您。 Nginx与Phusion Passenger / Unicorn / Thin结合使用。零停机部署不应该在Nginx中实施,而应该在乘客/独角兽中实施。我更喜欢使用Unicorn,它是免费的,功能强大的,并且支持零停机时间部署。
在生产环境中,Rails需要快速将每个文件加载和缓存到服务器HTTP请求,我建议不要更改此行为,更改它会降低生产速度。
我强烈建议不要修改服务器上的文件。 se Capistrano / Mina进行部署。手动更改文件可能会中断生产,并且肯定会造成巨大的停机时间。
Capistrano可以帮助您使用一个命令来部署项目。如果出现问题,Capistrano还可以帮助您快速还原到以前的版本。