Saya menggunakan nginx sebagai proxy terbalik. Setiap kali saya memperbarui konfigurasi untuk menggunakannya
sudo "cp -r #{nginx_config_path}* /etc/nginx/sites-enabled/"
sudo "kill -s HUP `cat /var/run/nginx.pid`"
Saya menghadapi downtime singkat. Bagaimana saya bisa menghindarinya?
sites-enabled
, bukan menyalinnya. Tidak terkait dengan masalah khusus Anda, tetapi Anda mungkin ingin melihatnya.kill HUP
adalah cara untuk melakukan isi ulang yang anggun di nginx.Jawaban:
Jalankan
service nginx reload
atau/etc/init.d/nginx reload
Ini akan melakukan reload panas dari konfigurasi tanpa downtime. Jika Anda memiliki permintaan yang tertunda, maka akan ada proses nginx yang tersisa yang akan menangani koneksi tersebut sebelum mati, jadi ini adalah cara yang sangat anggun untuk memuat ulang konfigurasi.
Terkadang Anda mungkin ingin menggunakannya
sudo
sumber
SIGHUP
ke proses master nginx. Seharusnya tidak ada perbedaan. nginx.org/en/docs/control.htmlcat $PIDFILE
|| gema -n "tidak bisa memuat ulang"service nginx reload
dannginx -s reload
? Jika saya menjalankan yang pertama, saya mendapatkan output ini:,Reloading nginx configuration: nginx.
tetapi perubahan saya tidak diperbarui. Jika saya menjalankan yang terakhir, saya tidak mendapatkan output, tetapi perubahan saya tercermin.log_not_found
arahan tetapi ternyata saya harus benar-benar melakukan restart untuk membuatnya bekerja. Saya kira memuat ulang tidak berfungsi untuk semua arahan?Lari
/usr/sbin/nginx -s reload
Lihat http://wiki.nginx.org/CommandLine untuk opsi baris perintah lainnya.
sumber
Tidak, Anda salah, Anda tidak seharusnya menghadapi downtime dengan prosedur yang Anda jelaskan. (Nginx dapat melakukan tidak hanya konfigurasi reload on the fly tanpa downtime, tetapi bahkan upgrade executable on the fly, masih tanpa downtime.)
Sesuai http://nginx.org/docs/control.html#reconfiguration , mengirim
HUP
sinyal ke nginx memastikan bahwa ia melakukan restart dengan baik, dan, jika file konfigurasi salah, seluruh prosedur ditinggalkan, dan Anda ' kembali dengan nginx seperti sebelum mengirimHUP
sinyal. Pada saat tidak ada downtime mungkin terjadi.sumber
Biasanya, memuat ulang file konfigurasi layanan tidak boleh memengaruhi layanan yang sedang berjalan. Namun, ini tergantung pada bagaimana
SIGHUP
sinyal diproses.Jika layanan tertentu mengalami downtime saat memuat ulang, ini dapat dielakkan dengan menjalankan layanan yang sama di beberapa server, lebih disukai menggunakan penyeimbang beban. Dalam hal ini, Anda dapat mengeluarkan satu server sekaligus dan memuat ulang / memulai ulang. Kemudian, dapat ditambahkan kembali setelah mengonfirmasi itu OK.
sumber