Rumah > Artikel > Operasi dan penyelenggaraan > Bagaimana untuk mencapai ketersediaan tinggi dengan menggabungkan keepalived dengan nginx
1. Pengenalan
keepalived ialah penyelesaian ketersediaan tinggi untuk perkhidmatan lvs berdasarkan protokol vrrp, yang boleh digunakan untuk mengelakkan satu titik kegagalan. Perkhidmatan LVS akan mempunyai dua pelayan yang dijalankan keepalived, satu sebagai pelayan utama (master) dan satu sebagai pelayan sandaran (backup), tetapi ia akan muncul sebagai IP maya kepada dunia luar pelayan sandaran. Apabila pelayan sandaran Apabila pelayan tidak dapat menerima mesej ini, iaitu, apabila pelayan utama turun, pelayan sandaran akan mengambil alih IP maya dan terus menyediakan perkhidmatan, sekali gus memastikan ketersediaan yang tinggi. Keepalived ialah pelaksanaan vrrp yang sempurna, jadi sebelum memperkenalkan keepalived, mari kita perkenalkan prinsip vrrp dahulu.
Pengenalan protokol 1.vrrp
Dalam persekitaran rangkaian sebenar, dua hos yang perlu berkomunikasi tidak mempunyai sambungan fizikal langsung dalam kebanyakan kes. Untuk keadaan sedemikian, bagaimana untuk memilih laluan antara mereka? Bagaimanakah hos memilih laluan lompat seterusnya ke hos destinasi Terdapat dua penyelesaian biasa untuk masalah ini:
Gunakan protokol penghalaan dinamik (rip, ospf, dll.) pada hos?
Mengkonfigurasi penghalaan statik pada hos
Jelas sekali, mengkonfigurasi penghalaan dinamik pada hos adalah sangat tidak praktikal kerana kos pengurusan dan penyelenggaraan dan Sama ada ia disokong dan banyak soalan lain. Mengkonfigurasi laluan statik telah menjadi sangat popular, tetapi penghala (atau get laluan lalai) sering menjadi satu titik kegagalan. Tujuan vrrp adalah untuk menyelesaikan satu titik masalah kegagalan penghalaan statik vrrp menggunakan protokol pilihan raya untuk secara dinamik menetapkan tugas penghalaan kepada penghala vrrp antara penghala maya dalam lan.
2. mekanisme kerja vrrp
Dalam penghala maya vrrp, terdapat berbilang penghala vrrp fizikal, tetapi berbilang mesin fizikal ini tidak boleh berfungsi pada masa yang sama, tetapi satu yang dipanggil master bertanggungjawab untuk kerja penghalaan, dan yang lain adalah sandaran Master tidak statik vrrp membenarkan setiap penghala vrrp untuk mengambil bahagian dalam pilihan raya, dan master adalah pemenang pada akhirnya. Tuan mempunyai beberapa keistimewaan Sebagai contoh, ia mempunyai alamat IP penghala maya Hos kami menggunakan alamat IP ini sebagai laluan statik. Tuan yang mempunyai keistimewaan bertanggungjawab untuk memajukan paket yang dihantar ke alamat get laluan dan membalas permintaan arp.
vrrp melaksanakan fungsi penghala maya melalui protokol pilihan raya Semua mesej protokol dihantar dalam bentuk paket ip multicast (multicast) (alamat berbilang siaran 224.0.0.18). Penghala maya terdiri daripada vrid (julat 0-255) dan satu set alamat IP, yang kelihatan kepada dunia luar sebagai alamat mac yang terkenal. Oleh itu, dalam penghala maya, tidak kira siapa tuannya, mac dan ip luaran adalah sama (dipanggil vip). Hos pelanggan tidak perlu mengubah suai konfigurasi penghalaan kerana perubahan dalam induk Bagi pelanggan, penukaran induk-hamba ini adalah telus.
Dalam penghala maya, hanya penghala vrrp sebagai induk akan sentiasa menghantar mesej pemberitahuan vrrp (mesej iklan vrrpad), dan sandaran tidak akan mendahului induk melainkan keutamaannya lebih tinggi. Apabila induk tidak tersedia (sandaran tidak boleh menerima maklumat pemberitahuan), yang mempunyai keutamaan tertinggi antara berbilang sandaran akan didahulukan untuk menjadi induk. Preemption ini sangat pantas (
3.vrrp aliran kerja
(1) Permulaan:
Apabila penghala bermula, jika keutamaan penghala ialah 255( The). keutamaan tertinggi, penghala mempunyai alamat penghala), untuk menghantar maklumat pemberitahuan vrrp, dan menghantar maklumat arp siaran untuk memberitahu alamat mac yang sepadan dengan alamat ip penghala ialah mac maya penghalaan, tetapkan pemasa maklumat pemberitahuan untuk bersedia untuk menghantar pemberitahuan vrrp maklumat dengan kerap, dan pindahkan ke keadaan induk ; Jika tidak, masukkan keadaan sandaran dan tetapkan pemasa untuk menyemak sama ada maklumat pemberitahuan daripada induk diterima secara tetap.
(2).master
Tetapkan pemasa pemberitahuan yang dijadualkan;
Balas alamat ip penghala dengan vrrp permintaan arp alamat mac maya; ip, ia akan diterima Paket data yang alamat destinasinya ialah IP penghala maya akan dibuang jika tidak
Apabila acara penutupan diterima, pemasa pemberitahuan yang dijadualkan akan dipadamkan, a; paket pemberitahuan dengan tahap keutamaan 0 akan dihantar, dan kemudian dimulakan Status; >
Apabila menerima maklumat pemberitahuan vrrp, jika keutamaan ialah 0, hantar maklumat pemberitahuan vrrp jika tidak, tentukan sama ada keutamaan data lebih tinggi daripada mesin tempatan, atau sama ada ia sama dan alamat IP sebenar; lebih besar daripada IP tempatan sebenar, tetapkan pemasa pemberitahuan yang dijadualkan, tetapkan semula pemasa tamat masa hos, dan pindahkan ke keadaan sandaran jika tidak, buangkannya Pakej pemberitahuan; sandaranApabila pemasa tamat masa hos tamat, ia menghantar maklumat pemberitahuan vrrp, menyiarkan maklumat alamat arp dan bertukar kepada keadaan induk
Apabila ia diterima maklumat pemberitahuan vrrp, Jika keutamaan adalah 0, ia bermakna memasuki pilihan raya induk jika tidak, tentukan sama ada keutamaan data adalah lebih tinggi daripada mesin tempatan Jika ia tinggi, akui induk adalah sah dan tetapkan semula pemasa tamat masa; jika tidak, buang paket pemberitahuan;
4.pemprosesan pertanyaan arp
Apabila hos dalaman menanyakan alamat mac yang sepadan dengan ip penghala maya alamat melalui arp, alamat mac yang dijawab oleh penghala induk ialah alamat mac vrrp maya, bukannya alamat mac kad rangkaian sebenar, supaya mesin rangkaian dalaman tidak dapat mengesannya apabila penghala bertukar dan apabila penghala dimulakan semula, ia tidak boleh menghantar alamat mac sebenar kad rangkaian tempatan secara aktif. Jika fungsi proksi arp (proxy_arp) didayakan pada penghala maya, respons arp proksi juga bertindak balas kepada alamat mac maya vrrp.
2. Bina persekitaran
1 Pelayan 1: 10.63.0.154 Pasang keeplived dan tetapkan nilai keutamaan kepada 100
2 : 10.63.0.155 Pasang keepalived dan tetapkan nilai keutamaan kepada 98
3. Tetapkan IP maya yang sepadan dengan dua pelayan sebagai: 10.63.0.158
3 >
Pemasangan keepalived ini menggunakan mod yum dan dipasang pada pelayan 1. Langkah utama adalah seperti berikut:2. Pasang keepalived, arahan: yum install keepalived Selepas pemasangan selesai, anda boleh menyemak nombor versi melalui arahan keepalived –v.
3. Cipta skrip /usr/local/nginx/nginx_check.sh. Kandungan skrip adalah seperti berikut:
#!/bin/bash #判断nginx服务是否启动,如果不存在,调用nginx启用命令,并停止2秒,若#启动失败,杀掉keepalived a=`ps -c nginx --no-header |wc -l` if [ $a -eq 0 ];then /usr/sbin/nginx sleep 2 if [ `ps -c nginx --no-header |wc -l` -eq 0 ];then killall keepalived fi fiTetapkan kebenaran nginx_check.sh Perintah tetapan ialah: chmod 777 /usr/local/nginx/nginx_check.sh4. Konfigurasikan maklumat nod keepalived, lalai Fail konfigurasi ialah /etc/keepalived/keepalived.conf. Fail konfigurasi keepalived.conf adalah seperti berikut:
! configuration file for keepalived global_defs { router_id nginx_master154 } vrrp_script chk_nginx { script "/usr/local/nginx/nginx_check.sh" interval 2 weight 20 } vrrp_instance vi_1 { state master interface eth0 virtual_router_id 154 mcast_src_ip 10.63.0.154 priority 100 nopreempt advert_int 1 authentication { auth_type pass auth_pass 1111 } track_script { chk_nginx } virtual_ipaddress { 10.63.0.158 } } }Perihalan parameter kunci fail konfigurasi:
3. Pasang nod sandaran keepalived
Pasang keepalived pada pelayan 2 Kaedahnya betul-betul sama seperti pelayan 1. Anda hanya perlu mengubah suai tiga tempat dalam fail konfigurasi keepalived.conf:
4.alat pengurusan perkhidmatan linux systemctl
Di Linux, terdapat dua arahan, perkhidmatan dan chkconfig, untuk menguruskan perkhidmatan. systemctl ialah alat utama untuk menguruskan perkhidmatan. Ia menyepadukan chkconfig dan fungsi perkhidmatan. (Anda boleh menggunakan arahan ini untuk mengurus perisian pemasangan yum dan tetapkan sama ada untuk bermula semasa but)systemctl restart *.service #重启服务
systemctl reload *.service #重新加载服务配置文件
systemctl status *.service #查询服务运行状态
systemctl --failed #显示启动失败的服务
注:*代表某个服务的名字,如http的服务名为httpd
例如在centos 7 上安装http
[root@centos7 ~]# yum -y install httpd
启动服务(等同于service httpd start) systemctl start httpd.service
停止服务(等同于service httpd stop) systemctl stop httpd.service
重启服务(等同于service httpd restart) systemctl restart httpd.service
查看服务是否运行(等同于service httpd status) systemctl status httpd.service 开机自启动服务(等同于chkconfig httpd on) systemctl enable httpd.service
开机时禁用服务(等同于chkconfig httpd on) systemctl disable httpd.service
ps -ef | grep nginx #查看服务进程
#非systemctl配置开机启动:chmod +x /etc/rc.d/rc.local
#打开rc.localvi /etc/rc.local
#加入启动脚本其中路径一定要用全路径如:/usr/local/nginx/sbin/nginx
Atas ialah kandungan terperinci Bagaimana untuk mencapai ketersediaan tinggi dengan menggabungkan keepalived dengan nginx. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!