3

运行时cap deploy可以创建一些文件夹,例如releasesshared。它们与Apache或Nginx的服务器根有什么关系?

这种方法对吗?(这是一个 Nginx 配置)

server {
  listen 80;
  server_name www.yourhost.com;
  root /releases/...;   # Which path to be here???
  passenger_enabled on;
}

还有,cap deployweb server 运行后可以自动重启吗?

4

1 回答 1

7

部署时,capistrano 在发布文件夹中创建一个文件夹,然后将该文件夹符号链接到/your_app/current.

由于您向公众公开的 Rails 应用程序部分是public文件夹,因此您需要将 nginx 配置中的根设置为:

root /path_to_your_app/current/public; 

每次部署current都会有效地从源刷新其内容,任何未提交到源代码管理的数据都将丢失,这就是共享文件夹的来源。共享文件夹将包含不会出现的内容版本控制,但您不想在每次部署时丢失 - 应用程序日志、上传的图像等。

这是如何使用共享文件夹进行上传的一个很好的例子:http ://www.simonecarletti.com/blog/2009/02/capistrano-uploads-folder/

可以通过 deploy.rb 中的以下任务来重新启动 Web 服务器:

namespace :deploy do
  task :restart do
    run "touch #{current_path}/tmp/restart.txt"
  end
end

Phusion 乘客监控此文件,并在创建时触发重新启动。

于 2012-09-30T05:26:35.303 回答