Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Bagaimana untuk melaksanakan ketersediaan tinggi Nginx dalam persekitaran pengeluaran

Bagaimana untuk melaksanakan ketersediaan tinggi Nginx dalam persekitaran pengeluaran

WBOY
WBOYke hadapan
2023-05-23 09:25:121321semak imbas

Persediaan:

192.168.16.128

192.168.16.129

Dua mesin maya. Pasang nginx

Pasang nginx

Kemas kini fail sumber yum:

rpm -ivh http://nginx.org/packages/centos/7/noarch/rpms/nginx-release-centos-7-0.el7.ngx.noarch.rpm
wget -o /etc/yum.repos.d/centos-base.repo http://mirrors.aliyun.com/repo/centos-7.repo

Pasang nginx:

yum -y install nginx

Arahan operasi:

systemctl start nginx; #启动nginx
systemctl stop nginx; #停止nginx

Apakah ketersediaan tinggi?

Ketersediaan tinggi (high availability) merupakan salah satu faktor yang perlu diambil kira dalam reka bentuk seni bina sistem teragih Ia biasanya merujuk kepada pengurangan 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 mencapai ketersediaan nginx yang tinggi

.

Penyelesaian sandaran panas dwi-mesin

Penyelesaian ini ialah penyelesaian ketersediaan tinggi yang paling biasa di kalangan perusahaan tempatan sandaran panas dwi-mesin sebenarnya merujuk kepada a Satu pelayan menyediakan perkhidmatan, dan yang lain dalam keadaan siap sedia untuk perkhidmatan tertentu Apabila satu pelayan tidak tersedia, yang lain akan menggantikannya.

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, vrrp (penghala maya) telah ditambahkan untuk mencapai ketersediaan yang tinggi . protokol redundansi, protokol redundansi penghala maya) fungsi. Oleh itu, selain dapat mengurus perisian LVS, keepalived juga boleh digunakan sebagai perisian penyelesaian ketersediaan tinggi untuk perkhidmatan lain (seperti: nginx, haproxy, mysql, dll.)

failover mekanisme

Pemindahan failover antara perkhidmatan ketersediaan tinggi yang kekal dilaksanakan melalui vrrp.

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

Proses pelaksanaan

Pasang keepalived

Anda boleh memasangnya terus menggunakan yum, yang akan memasang dependencies secara automatik:

rreee

Ubah suai fail konfigurasi hos (192.168.16.128)

Pemasangan Yum akan menghasilkan fail konfigurasi di bawah /etc/keepalived:

yum -y install keepalived

keepalived.conf:

vi keepalived.conf
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 ip addr

Konfigurasi pengesahan ke mesin sandaran juga memerlukan konfigurasi yang sama

Ubah suai konfigurasi mesin sandaran (192.168.16.129). sh

Penjelasan: Skrip mesti dibenarkan, jika tidak, tiada kebenaran untuk mengakses Di sini kami mempunyai dua pelayan yang melaksanakan

Dalam persekitaran pengeluaran, kami mengakses perkhidmatan secara terus melalui VIP.

Simulasikan kegagalan nginx:

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

Lawatan pertama

, akses melalui VIP, halaman memaparkan vip(virtual_ipaddress:192.168.16.130), menunjukkan bahawa perkhidmatan semasa disediakan oleh pelayan utama.

Pada masa ini

pelayan utama melaksanakan arahan:

#检测脚本
vrrp_script chk_http_port {
 script "/usr/local/src/check_nginx_pid.sh" #心跳执行的脚本,检测nginx是否启动
 interval 2       #(检测脚本执行的间隔,单位是秒)
 weight 2       #权重
}
#vrrp 实例定义部分
vrrp_instance vi_1 {
 state master   # 指定keepalived的角色,master为主,backup为备
 interface ens33   # 当前进行vrrp通讯的网络接口卡(当前centos的网卡) 用ifconfig查看你具体的网卡
 virtual_router_id 66 # 虚拟路由编号,主从要一直
 priority 100   # 优先级,数值越大,获取处理请求的优先级越高
 advert_int 1   # 检查间隔,默认为1s(vrrp组播周期秒数)
 #授权访问
 authentication {
  auth_type pass #设置验证类型和密码,master和backup必须使用相同的密码才能正常通信
  auth_pass 1111
 }
 track_script {
  chk_http_port   #(调用检测脚本)
 }
 virtual_ipaddress {
  192.168.16.130   # 定义虚拟ip(vip),可多设,每行一个
 }
}

Lawati VIP sekali lagi (

) dan mendapati halaman itu masih memaparkan: 192.168.16.130 pada masa ini, yang ialah mula semula automatik dalam skrip. 192.168.16.128

Sekarang tutup terus pelayan

, akses VIP di sini (192.168.16.128) dan kini mendapati bahawa halaman memaparkan

Pada masa ini,

akan gagal secara automatik. akhir persekitaran pengeluaran peringkat perusahaan Penyelesaian yang ada dibina. Terdapat banyak fungsi dalam 192.168.16.130192.168.16.128

, seperti peringatan e-mel, dsb., tetapi anda boleh pergi ke tapak web rasmi untuk membaca dokumentasi.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan ketersediaan tinggi Nginx dalam persekitaran pengeluaran. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam