nginx で構成されたシン サーバーがあり、ROR アプリがそれらで実行されています。
thin restart
コードの更新をリリースするときに実行すると、アプリケーションにダウンタイムが発生します。実行中のシン インスタンスを正常に再起動する方法を見つけようとしましたが、適切な解決策が見つかりませんでした。
誰もこれを達成できましたか?
nginx で構成されたシン サーバーがあり、ROR アプリがそれらで実行されています。
thin restart
コードの更新をリリースするときに実行すると、アプリケーションにダウンタイムが発生します。実行中のシン インスタンスを正常に再起動する方法を見つけようとしましたが、適切な解決策が見つかりませんでした。
誰もこれを達成できましたか?
# 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 はプロキシの 1 つを介してリクエストを自動的にルーティングします。