Kaedah ketersediaan tinggi Nginx

WBOY
Lepaskan: 2023-05-31 15:04:06
ke hadapan
1409 orang telah melayarinya

Penyediaan:

Kaedah ketersediaan tinggi Nginx

 192.168.16.128

192.168.16.129

Dua mesin maya. Pasang Nginx

Pasang Nginx

Kemas kini fail sumber yum:

rpm-ivhhttp://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

​wget-O/etc/yum.repos.d/CentOS-Base.repohttp://mirrors.aliyun.com/repo/Centos-7.repo

Pasang Nginx:

​ yum-yinstallnginx

Perintah operasi:

systemctlstartnginx;#Mulakan Nginx

systemctlstopnginx;#Hentikan Nginx

Apakah ketersediaan tinggi?

Ketersediaan tinggi HA (HighAvailability) adalah salah satu faktor yang mesti dipertimbangkan dalam reka bentuk seni bina sistem teragih Ia biasanya merujuk kepada mengurangkan masa apabila sistem tidak dapat menyediakan perkhidmatan melalui reka bentuk. Jika sistem sentiasa boleh menyediakan perkhidmatan, maka ketersediaan adalah 100%, tetapi terdapat keadaan yang tidak dijangka. Jadi kami hanya boleh cuba mengurangkan kegagalan perkhidmatan sebanyak mungkin.

Masalah selesai?

Dalam persekitaran pengeluaran, Nginx sering digunakan sebagai proksi terbalik untuk menyediakan perkhidmatan luaran Walau bagaimanapun, Nginx pasti akan menghadapi kegagalan suatu hari nanti, seperti masa henti pelayan. Apabila Nginx turun, semua antara muka yang disediakan secara luaran akan menjadi tidak boleh diakses.

Walaupun kami tidak dapat menjamin bahawa pelayan tersedia 100%, kami mesti mencari cara untuk mengelakkan tragedi ini Hari ini kami menggunakan keepalived untuk melaksanakan Nginx

Ketersediaan tinggi.

Penyelesaian sandaran panas dwi-mesin

Penyelesaian ini ialah penyelesaian ketersediaan tinggi yang paling biasa di kalangan perusahaan domestik dwi-pelayan sandaran panas sebenarnya bermakna bahawa satu pelayan menyediakan perkhidmatan dan yang lain berada dalam keadaan sedia untuk perkhidmatan tertentu Apabila satu pelayan tidak tersedia, yang lain akan mengambil tempat dia.

Apa itu keepalived?

Perisian Keepalived pada asalnya direka untuk perisian pengimbangan beban LVS untuk mengurus dan memantau status setiap nod perkhidmatan dalam sistem kluster LVS Kemudian, ia menambah fungsi VRRP (Virtual Router Redundancy Protocol) yang boleh mencapai ketersediaan tinggi. Oleh itu, selain mengurus perisian LVS, Keepalived juga boleh digunakan sebagai perisian penyelesaian ketersediaan tinggi untuk perkhidmatan lain (seperti Nginx, Haproxy, MySQL, dll.)

Mekanisme Failover

Pemindahan failover antara perkhidmatan ketersediaan tinggi Keepalived dilaksanakan melalui VRRP.

Apabila perkhidmatan Keepalived berfungsi seperti biasa, nod Induk utama akan terus menghantar mesej degupan jantung (berbilang hantar) ke nod sandaran untuk memberitahu nod Sandaran sandaran bahawa ia masih hidup Apabila nod Induk utama gagal, ia tidak boleh menghantar mesej degupan jantung dan nod sandaran tidak akan dapat menghantar mesej degupan jantung Oleh itu, nod tidak lagi dapat mengesan degupan jantung daripada nod Induk utama, jadi ia memanggil program pengambilalihannya sendiri untuk mengambil alih sumber dan perkhidmatan IP nod Induk utama. Apabila nod induk pulih, nod sandaran akan mengeluarkan sumber dan perkhidmatan IP yang diambil alih apabila nod induk gagal, dan kembali kepada peranan sandaran asalnya.

Proses pelaksanaan

Pasang keepalived

Anda boleh memasangnya terus menggunakan yum Kaedah ini akan memasang kebergantungan secara automatik:

​ yum-yinstallkeepalived

Ubah suai fail konfigurasi hos (192.168.16.128) yang disimpan

Pemasangan menggunakan yum akan menghasilkan fail konfigurasi di bawah /etc/keepalived:

vikeepalived.conf

​keeplived.conf:

​ Skrip #Pengesanan

vrrp_scriptchk_http_port{

​script"/usr/local/src/check_nginx_pid.sh"#Skrip pelaksanaan Heartbeat untuk mengesan sama ada nginx dimulakan

interval2# (selang untuk mengesan pelaksanaan skrip, unit ialah saat)

berat2# berat

}

​#vrrpInstance bahagian definisi

vrrp_instanceVI_1{

stateMASTER#Nyatakan peranan keepalived, MASTER adalah yang utama, BACKUP adalah sandaran

interfaceens33#Kad antara muka rangkaian semasa untuk komunikasi vrrp (kad rangkaian centos semasa), gunakan ifconfig untuk menyemak kad rangkaian khusus anda

​virtual_router_id66#Nombor laluan maya, tuan dan hamba hendaklah sentiasa

keutamaan100#Keutamaan, lebih besar nilai, lebih tinggi keutamaan untuk mendapatkan dan memproses permintaan

advert_int1# Semak selang, lalai ialah 1s (saat kitaran berbilang hantaran vrrp)

​ #Akses dibenarkan

Pengesahan{

auth_typePASS#Tetapkan jenis pengesahan dan kata laluan MASTER dan BACKUP mesti menggunakan kata laluan yang sama untuk komunikasi biasa

auth_pass1111

}

track_script{

​chk_http_port# (skrip pengesanan panggilan)

}

​virtual_ipaddress{

192.168.16.130#Tentukan ip maya (VIP), anda boleh menetapkan lebih daripada satu, satu setiap baris

}

}

​Vip boleh dikonfigurasikan dalam virtual_ipaddress, dan perkhidmatan boleh diakses dalam talian melalui vip.

Antara muka perlu ditetapkan mengikut kad rangkaian pelayan Kaedah tontonan biasa ialah ipaddr

Akses kebenaran konfigurasi pengesahan kepada mesin sandaran juga memerlukan konfigurasi yang sama

Ubah suai mesin sandaran (192.168.16.129) fail konfigurasi yang disimpan

​keeplived.conf:

​ Skrip #Pengesanan

vrrp_scriptchk_http_port{

​script"/usr/local/src/check_nginx_pid.sh"#Skrip pelaksanaan Heartbeat untuk mengesan sama ada nginx dimulakan

interval2# (selang pelaksanaan skrip pengesanan)

berat2# berat

}

​#vrrpInstance bahagian definisi

vrrp_instanceVI_1{

stateBACKUP#Nyatakan peranan keepalived, MASTER adalah yang utama, BACKUP adalah sandaran

interfaceens33#Kad antara muka rangkaian semasa untuk komunikasi vrrp (kad rangkaian centos semasa), gunakan ifconfig untuk menyemak kad rangkaian khusus anda

​virtual_router_id66#Nombor laluan maya, tuan dan hamba hendaklah sentiasa

priority99#Keutamaan, lebih besar nilai, lebih tinggi keutamaan untuk mendapatkan dan memproses permintaan

advert_int1# Semak selang, lalai ialah 1s (saat kitaran berbilang hantaran vrrp)

​ #Akses dibenarkan

Pengesahan{

auth_typePASS#Tetapkan jenis pengesahan dan kata laluan MASTER dan BACKUP mesti menggunakan kata laluan yang sama untuk komunikasi biasa

auth_pass1111

}

track_script{

​chk_http_port# (skrip pengesanan panggilan)

}

​virtual_ipaddress{

192.168.16.130#Tentukan ip maya (VIP), anda boleh menetapkan lebih daripada satu, satu setiap baris

}

}

Skrip pengesanan:

​ #!/bin/bash

#Kesan sama ada nginx dimulakan

A=`ps-Cnginx--no-header|wc-l`

​if[$A-eq0];then#Jika nginx tidak dimulakan, mulakan nginx

systemctlstartnginx#restart nginx

​jika[`ps-Cnginx--no-header|wc-l`-eq0];maka#nginx gagal dimulakan semula, hentikan perkhidmatan keepalived dan lakukan pemindahan VIP

killallkeepalived

fi

fi

Keizinan skrip: chmod775check_nginx_pid.sh

Nota: Skrip mesti dibenarkan, jika tidak, ia tidak akan mempunyai kebenaran untuk mengakses Di sini kami mempunyai dua pelayan yang melaksanakan, VIP (virtual_ipaddress:192.168.16.130), kami mengakses perkhidmatan secara terus melalui VIP dalam persekitaran pengeluaran.

Simulasikan kegagalan nginx:

Ubah suai halaman html Nginx yang diakses oleh kedua-dua pelayan secara lalai sebagai perbezaan.

Pertama, akses 192.168.16.130 melalui VIP Halaman memaparkan 192.168.16.128 yang menunjukkan bahawa ia adalah perkhidmatan yang disediakan oleh pelayan utama.

Pada masa ini, pelayan utama 192.168.16.128 melaksanakan arahan:

systemctlstopnginx;#stop nginx

Lawati VIP (192.168.16.130) sekali lagi dan ketahui bahawa halaman masih memaparkan: 192.168.16.128 Ini ialah permulaan semula automatik dalam skrip.

Sekarang tutup terus pelayan 192.168.16.128, lawati VIP di sini (192.168.16.130) dan kini mendapati halaman tersebut menunjukkan 192.168.16.129 Pada masa ini, keepalived akan gagal secara automatik dan penyelesaian ketersediaan tinggi untuk pengeluaran peringkat perusahaan persekitaran telah diwujudkan.

Terdapat banyak fungsi dalam keepalived, seperti peringatan e-mel, dsb., tetapi ia tidak tersedia. Anda boleh pergi ke laman web rasmi untuk membaca dokumentasi.

Atas ialah kandungan terperinci Kaedah ketersediaan tinggi Nginx. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!