ruby-on-rails - 如何优雅地重启 thin + nginx?

标签 ruby-on-rails ruby nginx capistrano thin

我的瘦服务器配置了 nginx,我的 ROR 应用程序正在它们上运行。

在我发布代码更新时运行 thin restart 会给我的应用程序带来一些停机时间。我试图弄清楚如何优雅地重启正在运行的 Thin 实例,但找不到好的解决方案。

有没有人能做到这一点?

最佳答案

# Restart just the thin server described by that config
sudo thin -C /etc/thin/mysite.yml restart 

Nginx 将继续运行并代理请求。如果您将 Nginx 设置为使用多个上游服务器,例如

server {
  listen        80;
  server_name  myapp.mysite.com;
  # ...
  location / {
    try_files $uri $uri/index.html /cache$uri.html $uri.html @proxy;
  }
  location @proxy {
    proxy_pass http://myapp.rails;
  }
}

upstream myapp.rails {
   server 127.0.0.1:9001 max_fails=1 fail_timeout=10s;
   server 127.0.0.1:9002 max_fails=1 fail_timeout=10s;
   server 127.0.0.1:9003 max_fails=1 fail_timeout=10s;
}

...然后每个实例将依次重新启动,Nginx 将在其中一个代理关闭时自动路由请求。

关于ruby-on-rails - 如何优雅地重启 thin + nginx?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11657741/

相关文章:

ruby-on-rails - 为浅层路由寻求最佳 RestKit/CoreData 映射和 JSON 结构的建议

unix - 在 Nginx access.log 中获取每个 IP 每个请求的请求计数

java - {{notification.header}} {{notification.message}} 在访问 Keycloak 管理控制台时加载

reactjs - 容器化的 ReactJs 应用程序(来自 nginx 图像)不提供所有路由

css - 如何将数百个 CSS 文件转换为 SCSS 文件?

ruby - 给我的 ruby​​ gem 起什么名字:Sqlite3Hash 或 Sqlite3::SomethingHash

css - 如何在 ruby​​ on rails 中使用 scss partials 使用变量

ruby-on-rails - ruby rails : undefined method 'before_save'

ruby-on-rails - Rails : Can't render pages, 获取 JSON 解析错误

Ruby-mp3info 专辑插图