Ters proxy olarak nginx kullanıyorum. Bunun için yapılandırmayı her güncellediğimde
sudo "cp -r #{nginx_config_path}* /etc/nginx/sites-enabled/"
sudo "kill -s HUP `cat /var/run/nginx.pid`"
Kısa bir kesinti yaşıyorum. Bunu nasıl önleyebilirim?
Service nginx reloadveya
/etc/init.d/nginx reload` komutunu çalıştırın
Kesinti olmadan yapılandırmanın sıcak bir şekilde yeniden yüklenmesini sağlayacaktır. Bekleyen istekleriniz varsa, ölmeden önce bu bağlantıları işleyecek kalıcı nginx işlemleri olacaktır, bu nedenle yapılandırmaları yeniden yüklemek için son derece zarif bir yoldur.
Bazen başına sudo
eklemek isteyebilirsiniz
Hayır, yanılıyorsunuz, tarif ettiğiniz prosedürle herhangi bir kesinti süresiyle karşılaşmamanız gerekiyor. (Nginx, herhangi bir kesinti olmadan yalnızca yapılandırmayı anında yeniden yüklemekle kalmaz, aynı zamanda herhangi bir kesinti olmadan çalıştırılabilir dosyanın yükseltilmesini bile anında yapabilir).
http://nginx.org/docs/control.html#reconfiguration'a göre, nginx'e HUP
sinyalinin gönderilmesi, zarif bir yeniden başlatma gerçekleştirmesini sağlar ve yapılandırma dosyaları yanlışsa, tüm prosedür terk edilir ve HUP
sinyalini göndermeden önceki nginx ile kalırsınız. Hiçbir noktada herhangi bir kesinti mümkün olmamalıdır.
nginx'in yapılandırma dosyasını yeniden okuması için ana sürece bir HUP sinyali gönderilmelidir. Ana süreç önce sözdiziminin geçerliliğini kontrol eder, ardından yeni yapılandırmayı uygulamaya, yani günlük dosyalarını ve yeni dinleme soketlerini açmaya çalışır. Bu başarısız olursa, değişiklikleri geri alır ve eski yapılandırmayla çalışmaya devam eder.
Genellikle, bir hizmetin yapılandırma dosyasının yeniden yüklenmesi çalışan hizmeti etkilememelidir. Ancak, bu SIGHUP
sinyalinin nasıl işlendiğine bağlıdır.
Belirli bir hizmet yeniden yükleme sırasında kesinti yaşıyorsa, bu durum aynı hizmeti tercihen bir yük dengeleyici kullanarak birden fazla sunucuda çalıştırarak aşılabilir. Bu durumda, her seferinde bir sunucuyu çıkarabilir ve yeniden yükleyebilir/yeniden başlatabilirsiniz. Ardından, tamam olduğunu onayladıktan sonra yeniden eklenebilir.