4
我有我的瘦服務器配置nginx和我的ROR應用程序正在他們上運行。如何正常重新啓動thin + nginx?
運行thin restart
當我發佈更新時,我的代碼引入了一些停機時間給我的應用程序。我試圖找出如何正常重啓正在運行的Thin實例,但我無法找到一個好的解決方案。
有沒有人能夠做到這一點?
我有我的瘦服務器配置nginx和我的ROR應用程序正在他們上運行。如何正常重新啓動thin + nginx?
運行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的意志的代理人之一左右自動路由請求,如果它下來。
「優雅」是什麼意思?如果您需要重新啓動,則需要重新啓動。 – Phrogz 2012-07-25 21:22:07
「優雅」意味着它不會丟棄當前連接,直到它們被處理。 – 2013-03-22 03:54:01
這就是獨角獸是如何做到的: 1-分叉主和工作進程。 2-將所有新請求發送給新主人。 3-完成後向所有舊進程發送一個kill信號。 這是優美的。 – Abdo 2014-12-07 23:17:27