Gunakan nginx untuk melaksanakan pengimbangan beban mudah, konfigurasi adalah seperti berikut
...
http{
...
upstream mytomcatscluster{
#ip_hash 在同一台服务器部署了2个tomcat,使用不同的端口
server 127.0.0.1:8080 weight=2;
server 127.0.0.1:8180 weight=1;
}
...
server{
...
# 将所有后端请求分发到我定义的集群服务器上
location /service/fen/{
proxy_pass http://mytomcatscluster;
}
...
}
}
...
Masalah semasa ialah: jika kedua-dua kucing jantan adalah normal, nginx boleh mengedarkan permintaan ke pelayan yang ditentukan secara normal Menggunakan undian, berat juga boleh berfungsi, tetapi jika saya mematikan salah satu kucing jantan, maka Permintaan akan tersekat kerana ada. akan menjadi permintaan yang diedarkan oleh nginx kepada pelayan yang gagal Bagaimana untuk menangani situasi ini Adakah ngxin mempunyai strategi penyelesaian yang sepadan? Adakah terdapat cara untuk nginx memantau status berjalan pelayan kluster? Bagaimana untuk mengkonfigurasi?
upstream mempunyai dua parameter max_fails dan fail_timeout Jika pelayan tertentu mengalami kegagalan sambungan max_fails dalam masa fail_timeout, maka Nginx akan berfikir bahawa ia telah menutup dan tidak akan memintanya semasa masa fail_timeout.
fail_timeout lalai kepada 10s, max_fails lalai kepada 1.
Selain itu, terdapat modul pihak ketiga nginx_upstream_check_module yang digunakan khas untuk mengesan kesihatan pelayan bahagian belakang
.
yaoweibin/nginx_upstream_check_module: Pemeriksaan kesihatan di hulu untuk nginx
https://github.com/yaoweibin/...
Tidak perlu menggunakan ip_hash untuk menyimpan sesi dalam redis