【问题标题】:How to use Capistrano with Apache or Nginx? [closed]如何将 Capistrano 与 Apache 或 Nginx 一起使用? [关闭]
【发布时间】:2012-09-21 10:17:00
【问题描述】:

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 deploy后,web服务器可以自动重启吗?

【问题讨论】:

  • 这里至少有三个问题。请再试一个更具体的问题,并说明您尝试了什么以及它是如何(不)工作的。
  • 我不知道它们是如何工作的。你能告诉我如何配置nginx的配置文件吗?我的问题不清楚?

标签: ruby-on-rails apache deployment nginx capistrano


【解决方案1】:

当您部署时,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 乘客监控此文件,并在创建时触发重启。

【讨论】:

    猜你喜欢
    • 2011-10-26
    • 1970-01-01
    • 2013-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-27
    相关资源
    最近更新 更多