ruby-on-rails - Rails - 使用 Capistrano 部署后需要重新启动 Nginx?

标签 ruby-on-rails ruby-on-rails-3 nginx capistrano passenger

我正在使用 Capistrano 部署我的 Rails 应用程序。每当我部署时,更改都不会反射(reflect)在浏览器上,并且我仍然需要重新启动 nginx 来更新站点(运行 sudo/etc/init.d/nginx restart)。我不太确定为什么,但它不应该在重新启动应用程序后更新吗? (使用触摸/app/tmp/restart.txt)

这是我的deploy.rb

require "rvm/capistrano"
set :rvm_ruby_string, 'ruby-1.9.3-p194@app_name'
set :rvm_type, :user

require "bundler/capistrano"

set :application, "app_name"
set :user, "me"

set :deploy_to, "/home/#{user}/#{application}"
set :deploy_via, :copy

set :use_sudo, false

set :scm, :git
set :repository,  "~/Sites/#{application}/.git"
set :branch, "master"

role :web, '1.2.3.4'
role :app, '1.2.3.4'
role :db,  '1.2.3.4', :primary => true
role :db,  '1.2.3.4'

namespace :deploy do
 task :start do ; end
 task :stop do ; end
 task :restart, :roles => :app, :except => { :no_release => true } do
   run "#{try_sudo} touch #{File.join(current_path,'tmp','restart.txt')}"
 end
end

最佳答案

您不必重新启动或重新加载 nginx。只需触摸 tmp/restart.txt 就足以告诉乘客重新加载应用程序。

如果您使用的是最新版本的 capistrano,您甚至可以删除整个“命名空间:部署”部分。成功部署后,Capistrano 已触及 tmp/restart.txt。

关于ruby-on-rails - Rails - 使用 Capistrano 部署后需要重新启动 Nginx?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11939540/

相关文章:

nginx - 更改运行 nginx 工作进程的用户 (Ubuntu 12.04)

php - 连接()到 unix :/var/run/php-fpm. 套接字失败(11 : Resource temporarily unavailable) while connecting to upstream, 客户端 : unix:, 服务器

ruby-on-rails - 如何通过activerecord从json字符串列中删除元素

ruby-on-rails - 使用嵌套资源测试 Controller

ruby-on-rails - 是否有删除使用脚手架文件生成的 rails 的命令

ruby-on-rails - Rails "assign_attributes"未分配嵌套模型

nginx - 在 Nginx 上部署 Create-React-App

javascript - JQuery-基于选择列表选择附加到 Rails 中的表单

ruby-on-rails-3 - Rspec 头痛 : configuration advice appreciated

jquery - 安装 JQuery 时,为什么我的 "delete"链接断开?